我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。

我如何从当地存储库撤销这些承诺?


当前回答

使用此命令 :

git checkout -b old-state number_commit

其他回答

添加/删除文件, 以便按照您想要的方式获取文件 :

git rm classdir
git add sourcedir

然后修正承诺:

git commit --amend

之前的错误承诺将会被编辑 以反映新的指数状态 换句话说,这就像你从未犯过错误一样

请注意,你只应该在还没有推的时候做这个。如果你已经推了,那么你只需要正常地做一个修正。

只要使用 git 重置它执行下面的命令 :

git reset --soft HEAD~1

解释 : git 重设做什么, 它基本上是重置到任何您想要返回的承诺, 然后如果它与 -- soft 键合并, 它会返回, 但保留您文件中的更改, 所以您回到刚刚添加文件的阶段, HEAD 是分支的头部, 如果您和 ~ 1 合并( 在此情况下, 您也使用 HEAD+) , 它只会返回一个您想要的...

我为您创建了以下图像中的步骤, 详情更多, 包括所有在真实情况下可能发生的步骤, 并承诺执行代码 :

这里是网站: 哦,该死,混蛋!

这里有许多解密的秘方 如何在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 reset HEAD@{1}

此命令将删除您没有 Git 日志的错误执行 。

你需要做简单快的动作

    git commit --amend

是私人分行还是私人分行

    git commit -m 'Replace .class files with .java files'

如果它是共享的或公共的分支。