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

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


当前回答

简单, 在命令行运行此操作 :

git reset --soft HEAD~ 

其他回答

如果您想要删除错误的文件, 您应该做

git reset --soft <your_last_good_commit_hash_here>来,如果你来git status中,您会看到中转区的文件。您可以选择错误的文件,然后从中转区取下来。

喜欢下面。

git reset wrongFile1 wrongFile2 wrongFile3

您现在可以添加您需要按键的文件,

git add goodFile1 goodFile2

提交提交它们

git commit -vgit commit -am "Message"

推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推

git push origin master

但是,如果您不关心已更改的文件, 您可以硬重置到先前的良好承诺, 并将所有文件都推到服务器 。

git reset --hard <your_last_good_commit_hash_here>

git push origin master

如果您已经向服务器发布错误的文件, 您可以使用--force挂号以向服务器推动并编辑历史。

git push --force origin master

使用什么,reset --softreset --hard?

@Kyralessa的回答:

如果您不确定该使用什么--soft(我用这个公约来纪念它)s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

为什么?

如果您选择了--hard你会犯错,你会犯错输 输之前没有的更改。如果您选择--soft犯错后,您也可以得出相同的结果。--hard通过应用附加命令

git reset HEAD file.html
git checkout -- file.html

完整示例

echo "some changes..." > file.html
git add file.html
git commit -m "wrong commit"

# I need to reset
git reset --hard HEAD~1 (cancel changes)
# OR
git reset --soft HEAD~1 # Back to staging
git reset HEAD file.html # back to working directory
git checkout -- file.html # cancel changes

感谢@Kyralessa。

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

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

git log 

然后你们可以做:

git reset --hard <commit_id>

git push origin <branch_name> -f

认为我们有code.txt 代码转换器。我们对其文件进行一些修改并做出承诺。我们可以以三种方式撤销这一承诺,但首先你应该知道什么是阶段文件...git status此文件将以绿色颜色显示, 如果此文件没有被预设用于承诺, 则会以红色显示 :

enter image description here

意思是,如果您进行更改,此文件中的更改就不会保存。 您可以在您的舞台上添加此文件git add code.txt然后承诺更改:

enter image description here

撤消上次承诺 :

  1. 如果我们想要在不做任何其他更改的情况下撤销承诺,

    git reset --soft HEAD^

    enter image description here

  2. 如果我们想要撤销承诺及其变化( ) 。这是危险的,因为你的改变会失去),我们可以使用

    git reset --hard HEAD^

    enter image description here

  3. 如果我们想要撤销承诺,从舞台上删除变化, 我们可以使用

    git reset --mixed HEAD^或以短或短形式git reset HEAD^

    enter image description here

类型类型类型git log并发现最后的散列代码,然后输入:

git reset <the previous co>