2011-11-01 120 views
0

我們在我的項目上使用git,但我無法完全按照自己的方式工作。我可以用一點Git /分支專業知識做一些事情!分支策略與Git不太正確

我們使用的是按功能分支,有時候還有多個開發者正在使用某個功能。其中一個主要問題是,我們將代碼留在了功能分支上,直到它被審查完畢,並且我們試圖通過擠壓它們來儘量減少提交次數,使審查更容易,並保持日誌清潔。

開發功能的基本過程是這樣的:

  • 創建本地&遠程倉庫主要特徵的分支(如我的功能,產地/我的功能)
  • 創建我的本地特性分支(如我的功能發放)
  • 做的工作對我的功能贈款,潛在的跨多次提交
  • 撳我的功能贈款的提交與重訂-i HEAD〜X
  • 衍合我的功能,授與我的功能,併合併到有
  • 推更改原產地/我的功能,並找人來審查它有

這工作得很好,除了那如果我想事實備份我的更改(例如,如果功能需要一天以上),我在文件系統上執行它,這看起來很瘋狂。

因此,我不但擁有myfeature-grant,還擁有一個遠程版本origin/myfeature-grant,我可以將更改作爲備份推送到該版本。這個問題來了,當我想壓縮我的提交功能時,因爲我不能將這些提交到origin/myfeature-grant,所以我必須刪除origin/myfeature-grant。 (由於遠程存儲庫設置,無法執行-f)。

所以我的問題是,如何在這種情況下使用git?我考慮的一些選項有:

  • 只要刪除產地/我的功能 - 本地(但我不喜歡是沒有備份,甚至幾分鐘,而我合併的東西)
  • 不要壁球的提交,使審查與更好的工具更容易
  • 使用了不同的策略完全

(我不知道有哪些跨度超過一天也將解決它的變化,但是這不是我們正處在)。

對不起,很長的問題,感謝您堅持下去!

回答

2

對於您來說還有一個選擇:在審閱之前,從功能分支開始的同一點創建新分支而不是功能分支;之後,將功能分支更改合併到git merge --squash的新分支中,並通過此新分支進行審閱。

(雖然我投了更好的工具。)

1

你可以問回購服務器管理員給你額外的回購在其中您可以強制推送。