HEAD是branchB
的最新版本,我们希望重新定位到branchA
。
* 4e4dd23 (HEAD, branchB)
| * 0b50615 (branchA)
|/
* dbca6fd (branchC)
| * 9b08e2e (branchOther)
|/
* f3db5ee (master)
* 4d03982
* 9d332c0
* 2aa39e0
运行git diff branchA.. --name-status
会显示此输出:
A newFile1
A newFile2
A newFile3
A newFile4
我们希望git rebase branchA
顺利运行。它没有。相反,在rebase开始之后,git status
输出:
rebase in progress; onto 0b50615
You are currently rebasing branch 'branchB' on '0b50615'.
Changes to be committed:
new file: newFile1
new file: newFile2
Unmerged paths:
added by us: someFile1
added by us: someFile2
added by us: someFile3
added by us: someFile...
added by us: someFile50
问题:
diff
只显示了添加内容。答案 0 :(得分:-1)
事实证明git rebase
并不关心git diff
。相反,它关心git log
。
当前分支中的提交所做的所有更改都会保存到临时区域。这是
git log <upstream>..HEAD
显示的同一组提交。
https://git-scm.com/docs/git-rebase
奇怪的是,修复方法如下:
git add -A
git commit -m "(WAT?) Add missing files"
git rebase continue
此时,git拒绝了continue
并推荐了skip
。
git rebase --skip
完成。奇。
此外,我们在此过程中丢失了两个文件。针对相关git diff
项的reflog
找到了它们。
注意:这是部分答案/解决方法。更多的帮助会很棒。