我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
当前回答
如果您已经安装了 Git Explos, 您可以运行 Git 撤消以撤销最近的承诺 。 git 撤消 3 将撤销最后的 3 个承诺 。
其他回答
通过下列方式查看日志来查找上次承诺的散列代码 :
git log
然后
git reset <the previous co>
你需要做简单快的动作
git commit --amend
是私人分行还是私人分行
git commit -m 'Replace .class files with .java files'
如果它是共享的或公共的分支。
假设您在本地犯下错误, 并将其推到远程仓库。 您可以解开这两个命令的混乱 :
首先,我们需要纠正我们的地方储存库,回到我们所希望的承诺上来:
git reset --hard <previous good commit id where you want the local repository to go>
现在,我们通过使用此命令,在远程仓库大力推动这项良好承诺:
git push --force-with-lease
强制选项的“ 租赁” 版本将防止意外删除您不知道的新承诺( 即上次拉动后来自其它来源 ) 。
撤消上一个任务
在很多情况下,你真的想撤销你代码中的最后一项承诺。例如,因为你想对它进行广泛的重组,甚至完全抛弃它!
在这种情况下,"重置"命令就是你最好的朋友:
$ git reset --soft HEAD~1
以上命令( 重置) 将把您当前的 HEAD 分支倒回指定的修改 。 在以上的例子中, 我们想回到当前修改前的修改中, 有效地取消我们上次的修改 。
注意 -- soft 旗号 : 这样可以确保未撤销修改的更改被保存。 在运行命令后, 您会发现您的工作副本中这些更改是未承诺的本地修改 。
如果您不想保留这些更改, 请使用 -- 硬旗 。 您确定不需要这些更改时, 一定要这样做 。
$ git reset --hard HEAD~1
调
要撤销您的本地承诺, 请使用 Git 重置 < tomit > 。 另外, 此教程非常有助于展示它是如何工作的 。
或者,您可以使用 git return <Conmit> : 当您想要添加另一个让更改倒退的承诺时, 应该使用 return( 但将其保留在项目历史中 ) 。