4

我们有一个每个人都使用的共享 git 存储库,我们有两个分支

  • 掌握
  • 开发者

我有我自己的这个 repo 的分支。我不时将上游 repo 中的更改拉到 fork 中的相应分支中,然后将我的功能分支重新定位到 dev 上。

IE。

  • 掌握
  • 开发者
  • 特色1

命令:

git checkout dev
git pull upstream dev
git checkout feature1
git rebase dev

现在,当我不时将我的 feature1 分支推回我的 fork 时,我被告知我的分支已过时并进行拉取,然后我遇到合并冲突。

我是并且将是唯一一个在这个分支/分支上工作的人,所以我对为什么会遇到这些合并冲突感到困惑。

即使没有其他人正在处理它,重新设置推送分支是否有问题?有什么方法可以解决此问题或遵循更好的工作流程

4

1 回答 1

3

发生这种情况是因为您正在重新调整您的更改。一旦你完成了你的分支不再包含与以前相同的提交,它就会包含反映相同(或类似更改)的新提交。当您尝试推送这些更改时,git 会注意到目标存储库上分支的当前尖端的提交不是您尝试设置为该分支的新尖端的提交的祖先。

git push -f即使不是快进,您也需要使用强制推动发生。但是当你这样做时,你需要小心不要从该分支中​​删除其他更改。如果该分支仅在您的单个存储库中进行过修改,那么-f在该分支上使用应该没问题,但是您肯定要小心不要使用该标志推送到masteror分支。dev

于 2012-11-26T22:57:18.333 回答