我正在開發一個大型的Rails項目,我正在使用的團隊正在使用Github來管理項目。雖然許多變化都在本地進行,然後直接推送到我們的開發分支,但是當我們要進行非常大的變更時,我們創建了一個分支。當將分支合併到開發中時,我經常嘗試在我的特性分支合併到開發中(以防止覆蓋其他人的工作)之前將其重新開發回我的特性分支。我發現當我這樣做時,我似乎碰到了兩次相同的合併衝突。在重新綁定時,我遇到了一系列衝突,然後在合併時再次遇到衝突列表。在將我的特性合併到開發中之前,我是否應該將其轉換爲我的特性分支?還是應該將我的特性合併到開發中?當我使用Git時,我應該在合併之前重新綁定?
比方說,我的功能分支被稱爲「new_feature」。我用了「開發」分支合併它的過程是這樣的:
git checkout develop
git pull (this is set up on our rig to always pull rebase)
git checkout new_feature
git rebase develop
(lots of merge conflicts ensue)
git checkout develop
git merge -no-ff new_feature
(same set of merge conflicts again)
這是因爲如果時間軸從我的底墊發生變化引起我的新特性分支,以一種反射鏡開發沿原路回來,再製定衝突與自己的psudo副本。
爲什麼'git merge -no-ff'?如果你剛剛重新發展新功能,它應該是一個快速發展。 – Useless 2012-02-02 18:03:32
我真的不確定。有一段時間,我們在這裏有一個真正認識Git的人,他告訴我,我應該這樣做,因爲某種原因,這與清理時間表有關。我不知道原因是什麼。 – 2012-02-02 18:06:43
我可以看到它可能會使時間線混淆......嗯。 rebase將替換'new_feature'上的所有提交,並將相同的更改應用於'develop'而不是原始分支點,這意味着您將獲得(提交)舊提交的副本,其父項(在原始分支點和「開發/ HEAD')比他們年長。 – Useless 2012-02-02 18:15:53