2

我在使用 git pull origin SomeBranch 时遇到了问题,因为当发生冲突时,有时我无法在 Xcode 中打开文件来解决冲突。

从我的阅读来看,虽然我可能是错的,但我认为 git fetch 抓取了代码,但还没有像 git pull 那样合并它。这如何与 Xcode 一起工作?

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

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

所以我做了这个

git fetch origin Branch2

我的命令行输出是:

*branch      Branch2     -> FETCH_HEAD

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

我认为在 Xcode 中会发生什么,然后它会在该源文件中显示该文件的更改,然后该文件将被修改。只有当我提交时,它才会被添加到暂存区域,以便我可以将它与其他所有内容合并。但也许我理解不正确。想法?谢谢。

4

3 回答 3

2

我认为 git fetch 抓取了代码,但还没有像 git pull 那样合并它。

对,那是正确的。git merge是更新您的工作目录的内容,这就是为什么...

当我转到我更改的文件的源文件时,我看不到任何更改。

git fetch检索表示更改的对象,但不更新您的工作目录。就是git merge这样。请记住,这git pull基本上是 agit fetch后跟 a git merge

于 2012-08-14T21:51:14.687 回答
0

fetch 只是更新你的远程跟踪分支。

这允许您在将这些更改与您在本地拥有的内容集成之前检查从服务器中提取的内容。

您现在可以将这些更改合并或变基到您的本地分支(如果存在)。如果没有,您可以简单地

git checkout branch2

如果是这样,

git merge origin/branch2

或者

git rebase origin/branch2

跳过这 2 步过程,只需

git pull origin branch2

默认情况下将合并。您可以覆盖

git pull --rebase origin branch2

您可以更改您的配置,以便拉动将始终变基而不是合并。

于 2012-08-14T21:52:57.763 回答
0

对于 Git 存储库,您需要先保存所做的更改并将其提交到本地存储库,然后再从共享存储库更新更改。

https://developer.apple.com/library/ios/recipes/xcode_help-source_control_management/UpdatingorPullingChanges/UpdatingorPullingChanges.html

于 2014-10-16T07:35:29.373 回答