2013-12-13 187 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

相关问题