2012-01-09 115 views
0

最近從svn移到git,請原諒我的新手問題。Git簽到分支,如果主人不同步

在我們的發佈過程中,我們針對master(和開發分支)進行了編碼,每隔幾周發佈一次,在那個時候,我們創建一個分支並釋放該分支。

錯誤修復進入分支,我們用這些修復更新發布服務器。

現在,當我嘗試在git中執行此操作並嘗試將更改提交到發佈分支時,它不允許我提交併將更改推送到分支,除非我的主控與主/從同步。如果有很多版本分支,這會變得很混亂,現在我必須確保它們中的每一個都是同步的,然後才能修復發行版中的錯誤並檢查它。

您如何解決此問題?

回答

2

我的團隊目前正在按照您在SVN中描述的方式執行發佈。代碼反對主幹,分支和發佈。使用Git,工作流程改變 - master匹配生產,並且從未被觸及,創建和移除分支在Git中是無痛的和'便宜的芯片',所以每個更改/修補程序/開發總是針對分支。這也使您能夠分別跟蹤每個開發。

開發完成並測試後,合併到master,標記並釋放。對於熱修復,分支master,測試,發佈和合併到master

對於在其他分支機構開發的人員,可以使用merge輕鬆地將分支帶回到最新狀態。

看一看github上使用Git如何發展,一個非常有趣的閱讀應該回答你的問題 - https://github.com/usm-data-analysis/usm-data-analysis.github.com/wiki/Developing-with-git

0

你只是在做「混帳推」?你可以使用「git push origin somebranch」來推送一個分支(而不是所有匹配的名稱)。

+0

是的,我只是在做「混帳推」。我會嘗試你的建議。謝謝。 – 2012-01-09 13:29:47

+0

謝謝,這個線程也很有幫助。 http://stackoverflow.com/questions/948354/git-push-current-branch。我做了一個「git config --global push.default current」,它只推送當前簽出的分支。 – 2012-01-09 13:52:32

0

您正在使用純git push。默認git push將嘗試推送每個分支。您可以將您的配置設置爲使用push.default = tracking。

git config push.default tracking 

git config --global push.default tracking 

隨着push.default =跟蹤,git push將只推當前分支。