我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。

我如何解除那些承诺?当地当地仓库?


当前回答

为了消除(所有变化)最后承诺、最后2承诺和最后n承诺:

git reset --hard HEAD~1
git reset --hard HEAD~2
...
git reset --hard HEAD~n

在做出具体承诺后,要消除任何东西:

git reset --hard <commit sha>

例如,

git reset --hard 0d12345

谨慎使用硬选项 : 它会同时删除您回购的本地更改, 并返回到上一个提及的承诺 。 您只应该运行此选项, 前提是您确定您在最后一次承诺中搞砸了, 并且想要回到过去 。

作为副注释,大约7个承诺的散列字母就足够了,但在更大的项目中,你可能需要最多12个字母才能独有。如果您愿意,也可以使用整个承诺的 SHA 。

上述命令在GitHub也为Windows服务。

其他回答

以下是网站:Oh shit, git!.

这里有许多解密的秘方 如何在Git 中解决事情。其中一些是:

哦,该死,我需要改变 信息在我的最后一次承诺!

git commit --amend
# follow prompts to change the commit message

哦,我无意中把什么东西 给了主人 本来该在全新的树枝上!

# Create a new branch from the current state of master
git branch some-new-branch-name
# Remove the commit from the master branch
git reset HEAD~ --hard
git checkout some-new-branch-name
# Your commit lives in this branch now :)

使用此命令

git checkout -b old-state 0d1d7fc32

如何撤销最后的 Git 承诺 ?

为了让一切恢复到上次承诺之前的状态 我们需要重置在总部总部之前的承诺

  1. 如果你不想保留你所做的改变:

    git reset --hard HEAD^
    
  2. 如果您想要保留您的更改 :

    git reset --soft HEAD^
    

现在检查您的 git 日志。 它会显示我们上次的承诺已被删除 。

git reset --soft HEAD~1

重置将会将您当前的 HEAD 分支倒带到指定的修订版 。

Note--soft旗帜 : 这样可以确保未撤销修改中的更改被保存。 在运行命令后, 您会发现这些更改是您工作副本中未承诺的本地修改 。

如果您不想保留这些修改,只需使用--hard。确保只在确定不再需要这些更改时才这样做。

 git reset --hard HEAD~1

撤消多个提交文件

git reset --hard 0ad5a7a6

但是,记住,使用重置命令可以解除所有在你返回后的承诺:

Enter image description here

这将添加一个新的承诺, 删除所添加的文件 。

git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"

或者您可以重写历史来撤销最后一项承诺 。

警告警告警告警告:此命令将永久删除对《京都议定书》的修改.java您承诺的文件( 和任何其他文件) -- 从工作目录中删除全部修改 :

git reset --hard HEAD~1

缩略hard resetHEAD-1您的工作副本将在您错误犯罪之前设定为犯罪状态 。