我是 XCode 新手。最近开始与团队合作进行 iPhone 项目。我们使用 GitHub 进行源代码控制,并直接从 XCode (5.1) pull/提交/推送。
目前我们都在研究 master。
我注意到我们的提交日志中包含大量以下语句:
Merge remote-tracking branch 'origin/master'
这些看起来很多余。这些项目几乎总是与另一个用户之前的提交相同。
示例场景:
- 用户 A 和用户 B 执行 PULL 以开始处理代码。
- 用户 A 编辑 SomeViewController.m 并执行 COMMIT 和 PUSH。
- 用户 B 编辑 AnotherViewController.m 并执行 COMMIT 和 PUSH。
- 用户 B 收到一个 [来自 XCode] 的错误,他必须先 PULL 才能提交。
- 用户 B 执行 PULL,然后执行 COMMIT。
现在提交日志中有 3 个项目:
- 来自用户 A 的更改
- 用户 B 的更改
- merge 远程跟踪分支 'origin/master'
但#1 和#3 是相同的!我们做错了什么?还是这只是一起使用 Git 和 XCode 的必要之恶?
最佳答案
一个解决方案是使用 rebase 命令而不是经典的 pull (获取 + merge )。
doing a pull in XCode时可以勾选选项.
这将在(获取和更新的)远程跟踪分支之上重播您的本地提交。
在命令行中,一个不错的选择是:
- 获取
- 尝试 merge
- 如果没有,尝试 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}
关于ios - 为什么 XCode 不断地做 "Merge remote-tracking branch ' origin/master'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24690277/