2013-12-13 189 views
0

假設我有一個新的feature分支和一個master分支。我做了一些更改並將它們提交到feature分支,但後來我結帳master並添加了其他更改。我想要做的就是獲取master的更改並將其應用於feature。我該怎麼辦?與master合併?git分支:``git merge master``和``git pull origin master``之間的區別

git checkout feature 
git merge master 

還是從master拉更改?

git checkout feature 
git pull origin master 

這兩個選項有什麼區別?

回答

1

git pull實質上是git fetchgit merge的組合。因此,與僅使用git merge的區別在於,它將首先從遠程存儲庫獲取新修訂版,然後然後執行合併。

如果您的本地master分支是最新的,這將沒有什麼區別,但如果它已過時,git pull將確保您合併來自遠程存儲庫的最新更改。

+0

到底發生了什麼,我的回購協議是,我已經失去了''master''(所做的更改不會''master''分支本身,而是在當使用第一個選項與「feature」合併時,生成的結果是「feature」。這就像合併操作決定保留一些未經修改的文件的''feature''版本,而不是獲得''master''版本。 – amb

0

如果你想獲得所有的有在主分支進入到特性分支的內容,那麼你可以做

git checkout feature 
git merge master 

如果你只是想獲得您在主分支上的提交,然後將它們應用到功能分支,然後您可以執行以下操作。

獲取感興趣的提交ID

git log master 

然後切換到功能分支

git checkout feature 

接着從該提交ID的變化,應用此功能的分支。這就是所謂的cherry-pick「荷蘭國際集團在世界git

git cherry-pick <commid_id> 
+0

這正是我所做的,前兩個步驟,但這些更改未合併到「功能」中...... – amb

+0

您很可能沒有將更改提交到主分支。我每天都會使用上面的命令,它工作正常。 – user376507

相關問題