我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
当前回答
单一个命令 :
git reset --soft 'HEAD^'
成功推翻了当地最后的承诺!
其他回答
我通常首先会发现我最近所作所为的杂草:
git log
看起来是这样的: 执行{long_hash}
复制此长 Hash 并重置它( 回到相同的文件/ 声明在其中) :
git reset --hard {insert long_hash without braces}
添加/删除文件, 以便按照您想要的方式获取文件 :
git rm classdir
git add sourcedir
然后修正承诺:
git commit --amend
之前的错误承诺将会被编辑 以反映新的指数状态 换句话说,这就像你从未犯过错误一样
请注意,你只应该在还没有推的时候做这个。如果你已经推了,那么你只需要正常地做一个修正。
要撤销您的本地承诺, 请使用 Git 重置 < tomit > 。 另外, 此教程非常有助于展示它是如何工作的 。
或者,您可以使用 git return <Conmit> : 当您想要添加另一个让更改倒退的承诺时, 应该使用 return( 但将其保留在项目历史中 ) 。
简单, 在命令行运行此操作 :
git reset --soft HEAD~
您可以以两种方式撤销您的 Git 承诺 : 首先, 您可以使用 Git 返回, 如果您想要保留您的承诺历史 :
git revert HEAD~3
git revert <hashcode of commit>
第二是您可以使用 Git 重置, 这将删除您全部的委托历史, 并随心所欲地将您的头移到您想要的地方 。
git reset <hashcode of commit>
git reset HEAD~3
您也可以使用 -- hard 关键词, 如果有的话, 如果它开始有其他行为的话。 但是, 我建议在非常必要的时候使用它。