我做了git rebase很多提交我做了很长时间.我不小心--skipped提交了一些我解决过的冲突.我应该做的git rebase --continue.
是否有办法在此rebase阶段重新应用此先前的提交,然后继续rebase?
我看到的一种方式是
或者我可以在一个篮板阶段做一个樱桃挑选?
Pat*_* B. 31
我发现了一种"为我工作"的方式:
在rebase期间,.git/rebase-apply目录中发生了很多事情.其中有一个名为的文件next.next包含一个数字,该数字对应于同样驻留在该文件中的文件.git/rebase-apply.此文件包含有关当前正在处理的提交的信息.例如:
$ cat .git/rebase-apply/next
0260
$ less .git/rebase-apply/0260
<info about the commit which is currently processed (and has conflicts)
Run Code Online (Sandbox Code Playgroud)
Git似乎保留了作为上述文件跳过的提交.而对应于已经应用的提交的文件不再存在.我意外跳过的提交被称为0259,文件仍然存在.
这是我做的:
$ echo "0258" > .git/rebase-apply/next
Run Code Online (Sandbox Code Playgroud)
有了这个我告诉git当前第258次提交被处理(之前正确应用).然后我做了
$ git rebase --skip
Run Code Online (Sandbox Code Playgroud)
告诉git忘记这个,瞧,我可以再次处理跳过的提交,纠正冲突和--continue.它奏效了.
Cor*_*ell 26
Git很棒,因为它可以保存基本上你所提交的所有内容的日志.
在" .git/logs/HEAD "中找到您的提交,然后在文本编辑器中打开
在HEAD文件中找到SHA
3c8c ... 2260dc ...全名{my.email@email.com} 1471276956 -0600提交:保存审判1,2,3
输入(注意类型足够sha,所以git知道要拉哪个):
git checkout -b recovery 2260d ...
请参阅链接以供参考:http://blog.screensteps.com/recovering-from-a-disastrous-git-rebase-mistake
| 归档时间: |
|
| 查看次数: |
7302 次 |
| 最近记录: |