我有一個遠程存儲庫的本地克隆與主和branch1
。git工作流後提交
master
是最新的,直到我做了一些關於branch1
的工作,我承諾(記住,所有地方)。在完成我的branch1
工作後,我有點困惑如何去做後續步驟。
我的想法是切換到master
,並做了git merge branch1
,然後做我的本地的master
副本推到遠程(我的本地master
是最新的遠程master
)。這是正確的還是有更好的方法來做到這一點?
我有一個遠程存儲庫的本地克隆與主和branch1
。git工作流後提交
master
是最新的,直到我做了一些關於branch1
的工作,我承諾(記住,所有地方)。在完成我的branch1
工作後,我有點困惑如何去做後續步驟。
我的想法是切換到master
,並做了git merge branch1
,然後做我的本地的master
副本推到遠程(我的本地master
是最新的遠程master
)。這是正確的還是有更好的方法來做到這一點?
這一切都取決於您的workflow。你有多個開發者在項目上工作,或者只有你?
如果您是該項目的唯一開發人員,那麼您的建議很好。您在本地分支,執行您的更改,合併和推送。
另一種方法是創建遠程分支,將本地推送到遠程分支,然後合併在一起(如果您使用的是Stash,BitBucket或其他遠程主機技術)。如果您正在執行協作代碼評論或需要與團隊分享您的工作,則後一種方法很好。您也可以推送到遠程分支進行備份。
快速的問題,合併後,我必須做一個提交與主?或者我可以推? – 2014-11-20 22:20:13
合併不需要提交,因爲您只是將提交提交到目標(例如主目錄)的提交歷史記錄中。 – 2014-11-20 22:21:12
很酷的感謝,感謝詳細的答案 – 2014-11-20 22:21:38
這是將更改從branch1
合併到您的master
分支的正確方法。關於git合併here有一些很好的文檔。
當我在一個項目上進行獨立工作時,我儘量避開主人的工作。抵制誘惑。
無論是我自己的項目還是其他人的我一直在克隆它,創建一個新的develop
分支並在那裏工作,並將develop
合併到master
。
我也經常會創造過的develop
特性分支,我這樣做,所以,如果我需要調整當前運行代碼的東西,我可以藏我的變化,切換到develop
,進行修正和歸併到master
並仍然能夠回到我正在開發的功能。
我的功能分支從未被推送到原點。一旦功能合併到開發中,我將刪除功能分支。
如果我在develop
分公司工作,並有一個特性分支我的工作,我通常會重訂於develop
分支我的特性分支。
我試圖抗拒的誘惑;) – 2014-11-20 22:24:58
工作流可以根據它工作的人員變化,但給出的鏈接是相當不錯的出發點,這是一個好主意,理解爲什麼人們有一定的工作流程,因爲你會來跨越他們在許多開源項目上。 – Casey 2014-11-20 22:26:17
我通常使用這個工作流程。假設上的名字my_project
在你的系統的主目錄中存在回購,進入這樣的:
cd ~/my_project
一旦在該項目中,我做了分支機構的檢查:
git branch -a
,將列出所有分支機構。如果你確定沒有其他分支想要處理,那麼可以跳過這一步。現在,確保你是這樣的主人:
git checkout master
好,好嗎?現在,讓我們簽出develop
分支這樣的:
git checkout -b develop
那麼現在就同時創建,並簽了一個名爲develop
分支。
現在在開發做你想做的事情。在適當的時候提交。只要做你的事情。
現在,當談到時間master
結賬master
這樣的合併:
git checkout master
雖然在那裏,你現在有兩個選擇。你可以做一個標準的合併是這樣的:
git merge develop
所以現在master
將與develop
合併。但人的時候,我喜歡用這樣的沒有快進(--no-ff
)選項:
git merge --no-ff develop
本網站explains it in detail,但長期和短期的它是通過使用--no-ff
你基本上把一個額外提交到合併這標誌何時合併發生。這樣做的主要好處是,如果某事發生了什麼事情,並且需要調查(或回滾)發生了什麼事情,那麼--no-ff
相關的提交很明顯可以發現並回滾到。比試圖破譯您在回購中可能擁有的大量提交更容易。
的--no-ff
,你與其他人分散團隊的工作變得更有價值。通過使用--no-ff
提交合並的意思,每個人在處理提交後相關問題時都會變得更加容易。
這麼說,我經常做平原git merge develop
,當我對我自己簡單的項目工作,我在一個藍色的月亮做出新的調整一次。
Git是最終源控制管理系統,你這麼如何處理犯基本上要依賴於處理,將需要回滾,如果/當一起去的問題你的舒適程度。
爲什麼選擇做'混帳checkout','混帳merge',然後'混帳push'時,你可以只是做'混帳push'?我更喜歡導致命令數量最少的工作流程來輸入 – 2014-11-21 00:00:14
我沒有意識到我可以自己完成git push,它也會執行合併嗎? – 2014-11-21 03:09:35
如果您的上游已更改,則必須進行合併/重新分配。如果您不在本地主人工作,則不需要使用兩個本地分支,但可以消除結帳/合併。 – 2014-11-21 03:29:26