2017-03-16 133 views
0

我開始使用git進行版本控制,並且我有以下情況。合併來自父分支的更改

我有一個分支4000-base。我使用分支從這個分支分支

git checkout 4000-base 
git checkout -n 4001-feature-1 

現在,我一直在本地開展這個分支。同時,父分支已更新。我想要做的是從父分支中獲取最新的更改,將其合併到本地的4001-feature-1分支,然後將分支推送到服務器,以便向所有人提供。

git中達到此目的的最佳方法是什麼?

+0

你需要將父分支合併到你的分支(然後是'push')。 – crashmstr

+0

這是git最基本的概念,你是否嘗試閱讀任何教程? – Dunno

+0

您可能想要閱讀[Git Book](https://git-scm.com/book/en/v2)。它從基礎開始並進入高級主題。 – crashmstr

回答

1

Git rebase是你在找什麼。

混帳變基 - 再塗承諾在另一個基地尖

您需要提交修改分支4001-feature-1分支的頂部。 您可以更新家長。 然後,您可以在4000-feature-1分支上使用命令git rebase 4000-base。 在這裏你可以鏈接更多關於git rebase的細節:https://git-scm.com/docs/git-rebase

+0

另外,關於「rebase」和「merge」,你可能想和你的團隊覈對一下,找出他們做的是哪一個(通常一個團隊總是會做一個或另一個)。 [Rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebase) – crashmstr

+0

只要任何提交沒有推送到遠程存儲庫,我將獲得'rebase'。否則'合併'。 @crashmstr – Rumid

+1

git的「問題」:通常有幾種有效的方法可以做某些事情。你更喜歡'rebase',我更喜歡'merge'(並且也會建議定期對特性分支進行提交和推送更改)。再次,他們應該與他們的團隊交談,瞭解團隊的工作方式。 – crashmstr

-1

第1步:

git stash 
在你的本地回購

。這會將您的本地更新保存到存儲中,然後將修改後的文件恢復到其預編輯狀態。

第2步:

git pull 

得到任何修改後的版本。現在,希望這不會得到你擔心的任何新版本的文件。如果沒有,那麼下一步將順利進行。如果是這樣,那麼你有一些工作要做,你會很高興你做到了。

第3步:

git stash pop 

如果一切順利的話這將合併您在步驟1捲走你的修改後的版本與版本你剛纔拉在步驟2中,那麼你將所有設置!

另一方面,如果您在步驟2中拉出的內容與您的修改(由於其他人在此期間進行編輯)之間存在實際衝突,您將會發現並被告知要解決這些衝突。做到這一點。

然後您可以提交更改。

+1

沒有。他們正在一個分支上工作,而不是在父項本身上工作(但是這將適用於在「合併」之前對工作副本進行的任何未經改動的更改)。 – crashmstr

相關問題