一千萬個為什麽

搜索

Git存儲庫有哪些分支策略/工作流程可用?



我正在尋找一個高級的,對Git主要適用的推薦分支策略/工作流的總結性描述,它可以作為導航這個環境的指南。

理想情況下,也應該提及利弊的概括,也許應該提及此類策略/工作流程的預期用法。

轉載註明原文: Git存儲庫有哪些分支策略/工作流程可用?

一共有 2 個回答:

Atlassian網站包含與Git相關的不同工作流程策略的比較。存在更多的策略,比如Linux Kernel團隊使用的策略,但與大多數組織無關。

最常用的工作流程類型是 -

  1. Centralized - every change is added using a single branch.
  2. Feature Branch - every change is added on its own branch and considered for merging into a central branch for integration.
  3. Gitflow - based on feature branch workflow, but also adds another branch for stable releases, and another bunch of branches for hotfixes on that stable release branch.
  4. Forking - in OSS projects often the whole project is copied over to an additional repository and changes are merged between multiple public repositories, or not merged, but still available to the public.

取決於組織,其中一個可能更合適。

    集中式 - 非限制性,允許每個人通過推送更改,最少開銷和涉及的過程來拍攝任何人以“打破構建”。優點是持續整合更改,即使這些更改無效。
  1. 功能分支 - 允許任何人通過添加一些開銷過程來添加更改,但與主要協作工作的集成是一個受控過程。在合並請求被遺忘或沒有出席的情況下,遲到集成變更的缺點是
  2. Gitflow - 管理各個分支的巨大開銷,對於那些只想將其變更轉移到分支中的常規人員造成了很大的困擾。當大多數開發人員只能看到這個“功能分支”部分時,可以很好地工作。發展和穩定分支之間的合並往往發生得很晚,並且整合不是微不足道的。添加額外的開銷和術語,每個人都必須理解。
  3. Forking - 狂野的西部,需要一個支持管理每個用戶(GitHub,GitLab,BitBucket Server等)的多個存儲庫和存儲庫的服務器。允許每個貢獻者最自由地做他想做的事,但不強制整合。要求整合以零碎的方式完成,並且通常通過跨存儲庫使用pull請求進行非常控制。在諸如OSS項目貢獻者這樣的無組織團隊中工作良好。

You can read book about best practices for git: https://git-scm.com/book/en/v2

項目中的一些git策略示例:

  1. 創建名為像任務的分支,功能/ XXX-1
  2. 發送要審核的任務
  3. 如果不審核,修復並再次審核
  4. 如果查看,請進行測試
  5. 如果測試未通過,則修復並再次審核/測試

第一次評論:

git pull dev
git checkout -b feature/XXX-1
git add .
git commit -m 'XXX-1 My task'
git push origin feature/XXX-1

如果審查後需要修復:

git push origin :feature/XXX-1
git reset --soft HEAD~1
git add .
git commit -m 'XXX-1 My task fix'
git push origin feature/XXX-1