使用 Git 工作流管理多分支的工作

我在项目中使用 Git 作为版本控制工具,并且经常遵循以下策略。 这个策略受到了A successful Git branching model的启发。 我有两个永久分支:master和develop。 以下是我日常开发中遵循的规则: 当我接手一个新任务或决定加入一个功能时,有两条主要路径: 如果功能较为简单,或后续提交不会破坏代码(至少我希望如此):我可以在develop分支上提交,或者创建一个快速功能分支,然后将其合并到develop分支上。 如果功能需要进行多次提交才能完成,可能需要花费几天时间提交才能使功能恢复稳定的状态:我会创建一个功能分支,然后将其合并到develop分支上。 如果我们的生产服务器需要立即采取措施,比如需要尽快解决的 bug 修复,我会创建一个短期修复分支,解决问题后在本地和测试机上进行测试,然后将其合并到 master 和 develop 分支上。 如果我需要在生产服务器上快速推送一个功能或修改,并且 develop 分支中代码不稳定,我希望尽快得到该功能或修改:我可以跳过 develop 分支,创建一个快速功能分支并将其合并到 master 和 develop 分支上,只要这个功能或修改是快速且简单的。如果在后续过程中发现这是一个更复杂的问题,最好等待并稳定 develop 分支上的代码。 develop 分支会一直处于不稳定状态,所以在准备发布时,需要将其放入“冻结”状态。代码经过测试,所有工作流程都经过验证,准备将其合并到 master 分支上。 每次将 develop 或其他短期修复分支合并到 master 分支时,我都会使用版本号做标签,这样如果出现问题可以轻松回滚到先前的状态。

我用來運行這個博客的技術棧

在本文中,我描述了我運行博客的方式 網站平台 網站托管地點 文章 發佈文章的工作流程 圖片 電子報 書籍 就是這樣! 網站平台 這個網站是使用Astro搭建的靜態網站。 以前我使用Hugo來構建,我喜歡它。不過現在我更喜歡使用JSX創建UI。 像Hugo一樣,Astro非常快速,可以生成快速響應的頁面,可以部署在Netlify或Cloudflare Pages等平台上。這就是我所需的一切。 網站托管地點 我以前使用Netlify來托管,現在改用Cloudflare Pages,因為他們提供免費的無限流量。 文章 我使用Markdown來撰寫文章。有時候我使用Notion、Bear或VS Code直接撰寫。Markdown是一種非常便攜的格式。 發佈文章的工作流程 我儘量多發佈文章。 以前我每天都會發佈,雖然現在我並不是每天都發佈,但我仍然儘量多發佈。 我只是享受這個過程。 有時候我在一個項目上工作,一天內就有三個發文的點子,這些都是我在Google上搜索並找到答案的東西。 我曾經提前一周或更長時間準備好內容,隨時可以發佈,但現在只有在有內容要發佈時才會發佈。 我將所有內容都推送到一個私有的GitHub存儲庫中,通過Git集成與Cloudflare Pages / Netlify同步。 每次向GitHub推送時,網站都會更新。 圖片 我確保所有文章圖片都使用ImageOptim進行了優化,以避免不必要的帶寬使用和提升頁面速度。 電子報 我有一個電子報。有時候我會發送一封郵件,列出我撰寫的文章以及我創建的任何新資源,這些資源可能很有趣。 我使用一個自托管的解決方案叫做Sendy和AWS SES。 了解一下為什麼你應該創建電子郵件列表。 書籍 我撰寫並發布了一系列電子書,可以在我的網站上閱讀或購買PDF或epub格式的書籍。我使用一個名為Honkit的工具生成這些書籍格式。詳細的流程在這裡: https://flaviocopes.com/how-to-create-ebooks-markdown/。 到目前為止,我已經寫了15本書,未來還計劃寫更多。 就是這樣! 我的工具和工作流程總是在不斷發展。 我會儘量保持這篇文章的更新。