为什么XCode会不断地进行"合并远程跟踪分支' origin / master'"

时间:2014-07-11 04:44:46

标签: ios xcode git github

我是XCode的新手。最近开始与一个团队合作开发iPhone项目。我们正在使用GitHub进行源代码控制,并直接从XCode(5.1)中提取/推送/推送。

我们现在都在做主人。

我注意到我们的提交日志中有大量以下语句:

Merge remote-tracking branch 'origin/master'

这些看起来非常多余。这些项几乎总是与另一个用户的先前提交相同。

示例场景:

  1. 用户A和用户B执行拉取以开始处理代码。
  2. 用户A编辑 SomeViewController.m 并执行COMMIT和PUSH。
  3. 用户B编辑 AnotherViewController.m 并执行COMMIT和PUSH。
  4. 用户B遇到错误[来自XCode],他必须在他可以进行COMMIT之前提出。
  5. 用户B执行PULL,然后执行COMMIT。
  6. 现在提交日志中有3个项目:

    1. 用户A的更改
    2. 用户B的更改
    3. 合并远程跟踪分支'origin / master'
    4. 但#1和#3完全相同!我们做错了什么?或者这只是一起使用Git和XCode的必要之处?

1 个答案:

答案 0 :(得分:1)

一种解决方案是使用rebase命令而不是经典的pull(fetch + merge) 您可以在doing a pull in XCode时查看该选项。

这将在(获取和更新的)远程跟踪分支上重放您的本地提交。

在comamnd系列中,一个不错的选择是:

  • 尝试合并
  • 如果没有,请尝试使用rebase

参见" "Merge remote-tracking branch..." What is this? I don't even. "和
" Why am I merging “remote-tracking branch 'origin/develop' into develop”?"

# download the latest commits
git remote update -p

# update the local branch
git merge --ff-only @{u}

# if the above fails with a complaint that the 
# local branch has diverged:
git rebase -p @{u}