在允许重置和/或重新建立基础(并因此重写历史记录)的情况下,我在这里找到了很多答案,但是当您新克隆一个回购,签出并拉出分支A后,该怎么办?和分支B,然后在分支B上,git merge A
返回Already up to date.
,尽管事实git diff A
清楚地表明了一个非平凡的增量?
我知道的一种方法是将B重新合并到A,更正A上的问题,然后将其合并到B(实际上是A上的无操作)。但这意味着更改源分支,我觉得这没有必要。
因此,是否有一种方法可以告诉git合并A中的所有内容,以便B匹配A而无需重置/重新设置基准,而无需对A做任何事情(因为A正是我想要的东西开始) ,而没有在B上添加另一个仅使问题复杂化的提交(因为这是引起我要解决的问题的一种方式)?
(要强调的是,这是从新克隆并提取的回购中获得的,因此我没有使用任何技巧(如果这会创建合并提交,我可以在推送之前更正并修改它,但是问题是根本没有合并提交。)
我怀疑可能没有,并且唯一的干净方法(假设在这种情况下我无法重写历史记录)将涉及(返回)合并到A。但是,git充满并且充满了奇迹,所以我想值得在这里问。
答案 0 :(得分:1)
该消息的意思是:B
位于A
的前面,因此合并操作无法理解应该合并的内容。
(编辑:重新阅读您的问题...)
如果要将内容重新设置为“ A中的内容”:这不是merge
操作,则需要在磁盘或索引中将内容重新设置为什么内容。它在A
中。
git restore A
如果您的git较旧,
# apply the diff between B and A to B :
git diff -p B A | git apply --index -
# commit
git commit
答案 1 :(得分:0)
我的建议是创建一个新分支并删除B(如果有必要,请从B中挑选需要的内容)。
答案 2 :(得分:-1)
尝试:
git checkout master
git reset --hard <branch>
git push --force origin master