git:主分支历史记录已从我下面更改了

问题描述 投票:0回答:1

如果愿意的话,想象两个分支:master 和 my_branch。需要明确的是,my_branch 是从 master 分支出来的。

我一直在一个项目上非常愉快地工作,它被搁置了大约一个月。愚蠢的是,我忘记仍然将 my_branch 重新设置为 master 每天。我的失败。

但是,我认为即使这也不应该成为问题。除非有人直接在master中重写历史。我很确定有人这样做了:通过压缩、删除提交或其他更改历史记录的方式返回并更改提交。

当我尝试变基到 master 时,我仅在我的分支中遇到大量与文件的冲突。这让我完全困惑。不仅如此,我还发现变基的每个步骤都存在相同的冲突(一旦它们第一次出现)。我解决了所有问题并继续变基,在下一步中我遇到了相同的冲突。

我想我需要的是一些关于这种情况如何发生以及我如何解决它的建议。当然,我知道这里有很多猜测。

git git-rebase
1个回答
0
投票

愚蠢的是,我忘记了每天将

my_branch
重新设置为
master
。我的失败。

实际上,如果

master
的历史被重写,你的日常 rebase 不会改变任何东西:“新”
master
之上的下一个 rebase 仍然会是一个需要解决的混乱。

如果

git fetch
+
git log --all --branches --oneline --graph --decorate
直观地确认您的本地
master
origin/master
已完全分歧,那么是的,在新的
master
之上挑选您的提交将是包含您的内容的最快方法回到
master

git rebase --onto origin/master $(git merge-base master my_branch) my_branch 

这假设您没有对

git pull
执行
master

© www.soinside.com 2019 - 2024. All rights reserved.