Git恢复重置
我只是做了一次git reset - 硬性命令。 这个git动作能以某种方式恢复吗? 我想取回未提交的更改。 我从命令行使用git。
我能从一个仍在运行的tomcat / grails实例中获取代码吗?
如果变更没有提交或分阶段进行,答案是否定的。
如果你提交了更改,你可以找回,因为提交对象在那里。
如果您执行了更改(使用git add
),您仍然可以找回blob
更改,因为已经生成了用于更改的blob
对象。
首先,请复制您的整个git存储库作为备份。
只是为了调查,你可以用ls -l -t .git/objects
来创建这些对象的创建时间。 每个对象都以对象标识的前2个字符作为文件夹名称存储,而左侧部分作为文件名称存储。 例如, 78/981922613b2afb6025042ff6bd878ac1994e85'. And you can use
78/981922613b2afb6025042ff6bd878ac1994e85'. And you can use
git cat-file来获取它的内容。
git cat-file -p 78981922613b2afb6025042ff6bd878ac1994e85
或者只是简称(ID的前几个字符)。
git cat-file -p 789819
为了恢复,我刚刚找到了答案。 请参考撤消git reset --hard,并在暂存区域提交未提交的文件。
如果变更从未提交过,答案是否定的,你不能。
如果您进行了硬重置并丢失了已执行的更改,则可以通过检查reflog将其还原。
如果你没有在“git reset --hard”之前做一个临时补丁,现在你可以“git pull”进行同步,那么没有办法恢复未提交的更改。
但是,只有在“Git reset --hard”之前执行了以下命令才能获得未提交的更改,但有一些棘手的方法:1. git diff并退出,如果按Ctrl + z
那么你可以通过命令“fg”取回。 因为ctrl + z会让git diff命令在后台运行。 如果您之前没有在“Git reset --hard”之前完成上述操作,那么对不起,您必须重新编写更改。 祝你好运。
链接地址: http://www.djcxy.com/p/4029.html上一篇: Git revert reset