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

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


当前回答

您可以对上一个版本进行 Git 检出 < SHA code> , 然后再对新代码再次承诺 。

其他回答

您可以从本地仓库撤销您的承诺 。 请遵循以下方案 。

在下面的图像中, 我检查“ 测试” 分支( 使用 Git 命令 Git 检出 - b 测试) 作为本地分支的本地状态和检查状态( 使用 Git 命令 Git 状态) , 没有可执行的 。

在您可以看到的下一个图像中, 我对 Feller1. txt 做了一些修改, 并将该文件添加到中继区, 然后用一些信息( 使用 Git 命令 Git 承诺 - m “ 做 承诺测试返回 ” ) 进行更改 。

"-m 用于发送信件"

在下一个图像中,您可以看到您的承诺日志(使用 Git 命令 git 日志) 。

在上述图像中,您可以看到每次承诺的承付代号, 以及您现在的委托信, 任何您想要返回或撤销执行 ID 并击中下面的 Git 命令的副本, git return {“ paste your decent id”} 。 例如 :

git revert 9ca304ed12b991f8251496b4ea452857b34353e7

我恢复了上次的承诺。 现在, 如果您检查您的 Git 状态, 您可以看到已修改的文件, 即 Flickr1. txt , 但尚未执行 。

如果您想要永久撤销它, 您克隆了一些仓库 。

犯罪身份可通过以下方式识别:

git log 

然后你们可以做:

git reset --hard <commit_id>

git push origin <branch_name> -f

有许多方法可以做到:

撤消上次执行/ 上一个承诺的 Git 命令 :

警告: 如果您不知道自己在做什么, 不要使用 -- 硬。 -- 硬太危险, 它可能会删除您的文件 。

返回 Git 中的承诺的基本命令是 :

$ git reset --hard <COMMIT -ID>

$ git reset --hard HEAD~<n>

承诺的代号:

n: 是您想要返回的最后一次承诺的数

您可以获取下列承诺代号:

$ **git log --oneline**

d81d3f1 function to subtract two numbers

be20eb8 function to add two numbers

bedgfgg function to multiply two numbers

d81d3f1 和be20eb8 是实施代号的 。

现在,让我们来看看一些案例:

假设您想要返回上次的“ d81d3f1 ” 。 这里有两个选项 :

$ git reset --hard d81d3f1

$ git reset --hard HEAD~1

假设您想要还原“ ebe20eb8” 承诺 :

$ git reset --hard be20eb8

欲了解更详细的信息,请参考并尝试其他命令,将头重置为指定状态:

$ git reset --help

您可以使用:

git reset HEAD@{1}

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

在我的情况中,我承诺并推向错误的分支, 所以我想要的是把全部的改变都收回来, 这样我就可以把它们投向一个新的正确的分支, 所以我做了这个:

在您承诺和推动的同一分支上, 如果您输入“ gitt status” 键入“ git status” 状态, 您将不会看到任何新事物, 因为您承诺和推动, 现在键入 :

    git reset --soft HEAD~1

这将将您所有的更改( 文件) 重新回到舞台区域, 现在把它们重新回到工作目录( 非阶段) 中, 您只要输入 :

git reset FILE

“ 文件” 是您想要再次承诺的文件 。 现在, FILE 应该在工作目录中, 包含您所做的全部更改 。 现在您可以更改为您想要的分支, 并对该分支进行更改 。 当然, 您承诺的初始分支仍然有所有更改, 但对于我来说, 如果不是您的话, 您可以寻找恢复该分支承诺的方法 。