2012-08-14 33 views
1

我在使用git pull起源SomeBranch时遇到了问题,当有冲突时,有时我无法在Xcode中打开文件来解决冲突。使用Xcode获取git

从我的阅读中,虽然我可能是错的,但我认为git fetch会抓取代码,但不会像git pull那样合并它。这与Xcode如何工作?

例如,在Branch1上的一台机器上,我进行了一些更改。

然后在机器2上,在Branch2上,我想获取Branch1更改。

所以我做了这个

git fetch origin Branch2 

我的命令行输出为:

*branch  Branch2  -> FETCH_HEAD 

这是什么意思?当我转到我更改的文件的源文件时,我看不到任何更改。

我认为会发生什么是在Xcode中,它会显示该文件在该源文件中的变化,然后该文件将被修改。只有当我承诺它会被添加到暂存区域,所以我可以将它与其他一切合并。但也许我错误地理解了它。思考?谢谢。

回答

1

我以为git抓取抓取代码,但并没有像git pull那样合并它。

是的,这是正确的。 git merge是什么更新你的工作目录,这就是为什么...

当我去我更改文件的源文件,我没有看到任何更改。

git fetch检索代表更改的对象但不更新您的工作目录。这就是git merge所做的。请记住,git pull基本上是git fetch,然后是git merge

+0

那么你会用,如果你不能看到这些变化获取受益? – Crystal 2012-08-14 21:59:14

+0

http://stackoverflow.com/a/372​​4357/139010 – 2012-08-15 01:08:57

0

获取刚刚更新您的远程跟踪分支。

这允许您在将这些更改与本地所做的更改集成之前,检查从服务器上拉下的内容。

现在,您可以将这些更改合并或重新绑定到本地分支(如果存在)。如果没有,你可以简单地

git checkout branch2 

如果这样做,

git merge origin/branch2 

git rebase origin/branch2 

跳过这两个步骤,只是

git pull origin branch2 

这将默认合并。你可以用

git pull --rebase origin branch2 

你可以改变你的配置,这样拉将总是变基而不是合并。