我是新来的git和github,我有一些麻烦。撤消“回滚到此提交”
我正在使用github for windows来管理我有的一个小项目。我认为我最近对代码做了一些改变。我做的是:
- 更改了一些文件。
- 意外犯下了这些更改。
- 恢复提交。
- 然后我按下“回滚到此提交”。
现在所有更改都消失了,包括我添加的一些新文件。我可以保存它们吗?我也安装了git(命令行),以便我可以执行任何你认为会有所帮助的命令。
我是新来的git和github,我有一些麻烦。撤消“回滚到此提交”
我正在使用github for windows来管理我有的一个小项目。我认为我最近对代码做了一些改变。我做的是:
现在所有更改都消失了,包括我添加的一些新文件。我可以保存它们吗?我也安装了git(命令行),以便我可以执行任何你认为会有所帮助的命令。
关于git的好处之一是,除非你做了奇怪的事情,否则很难失去任何东西。
你需要做的是找到代表你想成为的状态的点。
假设您检查git日志并确定散列01dbc4 ...是您想要返回的时间点。要做到这一点,只需执行:
git reset --hard 01dbc4
请注意,如果您有未提交的更改,则需要先将其保存。
现在,如果该提交缺少您想要的额外文件,并且它们在以后的提交中,则会变得更加复杂。但是你可以做的是将你的主分支设置到你想要启动的地方,然后设置一个分支到有新文件的地方。然后,您可以复制或选择性地将新分支中缺失的信息合并到主分支,从而使您的主分支看起来如何。
请注意,即使您像使用git reset --hard时以及稍后提交孤立提交时那样移动分支指针,您可以通过检查git reflog
并重置它们或创建指向它们的分支来取回它们。
注意,现在(2013年3月),与GitHub上的Windows,您可以撤消,而无需输入任何命令的git提交:
请参阅 “Undo Button in GitHub for Windows”
我们添加撤消对于丢弃的支持,提交,回退,并合并:
非常感谢!它工作完美! – nautilus7
在我的情况下,git log没有显示被销毁的提交。 – Bulwersator