用的是 Gitlab 。
在我的本地, origin 指向我的 repo , ups 指向上游 repo
我想把 master 更新到上游的最新版本,我的行动:
- git fetch ups
- git rebase ups/master
- git push 结果第 2 步出现了很多 conflict 。
请问,我没改过代码,为什么还要让我解决冲突呢?有没有更好的同步上游改动的方法? 谢谢!

用的是 Gitlab 。
在我的本地, origin 指向我的 repo , ups 指向上游 repo
我想把 master 更新到上游的最新版本,我的行动:
请问,我没改过代码,为什么还要让我解决冲突呢?有没有更好的同步上游改动的方法? 谢谢!
1 sorra OP 我发现上游的 merge commits 在我这里消失了(变成扁平的了),难道是 rebase 的时候弄掉了?所以不应该用 rebase ? |
2 besto Jan 18, 2017 冲突是和你当前的 branch 有冲突。你当前指向的是 master ?还是自己改过的 branch ? 另外用 pull --rebase 比较好。 |
3 sorra OP @besto 是 master ,没动过的。我改用 git pull ups master 成功了,确实 pull 就好了。我之前为什么要 fetch+rebase 呢? |
4 kinghui Jan 18, 2017 有可能上游强推过(git push -f) |
5 julyclyde Jan 18, 2017 你可以对比一下 log ,估计是 push -f 过 |
6 SpicyCat Jan 18, 2017 如果本地没有修改,那就是人家强推过。 git reset --hard ups/master 就好 |
7 franklinyu Jan 19, 2017 所以大多 Git 教程都有「推需慎」,就是避免人困惑的情…… |