我在删除文件的过程中处理一个功能(分支) 不再使用,但出于某种原因,我需要它。
所以我这样做了:
git checkout hashofcommit0 -- path/to/my/file
它有效,但我已经丢失了文件上的所有注释。我真的需要注释。
当然,我可以创建一个新分支,应用我最后一个分支完成的所有差异(除了删除的文件),并且很高兴。
(0) - > (1) - > (..) - > (n)的
是否有一个解决方案可以返回提交(0),撤消删除,并返回上次提交(n)而不会发生冲突?
答案 0 :(得分:3)
git rebase -i hashofcommit0
将edit
标记为删除文件的提交
当rebase操作到达该提交时,它应该给你控制和一个shell
git add name_of_file
git commit --amend
git rebase --continue
让我知道
答案 1 :(得分:2)
详述Carpao答案
git rebase -i hashofcommit0^ (note the ^ that indicate the father of your first commit)
您将看到从旧版本到最近版本
的提交列表pick hashofcommit0 comment of commit0
pick hashofcommit1 comment of commit1
pick hashofcommit2 comment of commit2
pick hashofcommit3 comment of commit3
pick hashofcommit4 comment of commit4
pick hashofcommit5 comment of commit5
...
仅将第一个pick
更改为edit
在错误提交
的情况下,您将被提示使用shell使用以下命令恢复丢失的文件:
git checkout HEAD^ -- nameOfMissedFile
然后重新添加它并修改提交,然后继续使用rebase
git add nameOfMissedFile
git commit --amend (confirm or change the comment of the commit)
git rebase --continue