Git rebase私有功能分支

4
我们有一个共享的git代码库,每个人都使用它,并且我们有两个分支:
- master - dev
我有自己的代码库分支。我时不时地从上游代码库拉取更改到我的代码库对应的分支中,然后将我的功能分支rebase到dev分支上。
例如:
代码库分支:
- master - dev - feature1
命令:
git checkout dev
git pull upstream dev
git checkout feature1
git rebase dev

现在我时不时地试图将我的feature1分支推送回我的fork,但是会被告知我的分支已经过时,需要进行拉取操作,然后我就遇到了合并冲突。

我是唯一在这个fork/分支上工作的人,所以我很困惑为什么会出现这种合并冲突。

即使没有其他人在使用它,rebase一个已经推送过的分支会出现问题吗?有什么解决方法或更好的工作流程可以遵循呢?

1个回答

3
这是因为您正在重新定位您的更改。一旦您这样做,您的分支就不再包含与之前相同的提交,而包含反映相同(或类似)更改的新提交。当您尝试推送这些更改时,git 发现目标仓库上分支当前节点的提交不是您要将其设置为该分支新节点的提交的祖先。
您需要使用 git push -f 强制执行推送,即使它不是快进。但是在这样做时,您需要注意不要删除该分支中的其他更改。如果该分支仅在您的单个仓库中进行修改,则可以放心地在该分支上使用 -f,但一定要小心不要使用该标志将更改推送到 masterdev 分支。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接