我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
我无意中把错误的文件给了Git, 但还没有把承诺推到服务器上。
我如何从当地存储库撤销这些承诺?
当前回答
使用此命令( 在顶部的日志 1 中, 这是最新命令) 获取上次的 身份确认 :
git log
获取执行 ID (GUID) 并运行此命令 :
git revert <commit_id>
其他回答
如果您想要删除错误的文件, 您应该做
git 重置 -- s软 < your_ last_ good_commit_hash_ here> 在这里, 如果您做 Git 状态, 您可以在集结区看到文件。 您可以选择错误的文件, 从集结区拿下来 。
喜欢下面。
git 重置错误的File1 错误的File2 错误的File3
您现在可以添加您需要按键的文件,
添加好文件1 好文件2 git 添加好文件1 goodFile2
提交提交它们
git 承诺 -v 或 git 承诺 - am "Message"
推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推,推
git 推进源源主机
但是,如果您不关心已更改的文件, 您可以硬重置到先前的良好承诺, 并将所有文件都推到服务器 。
由
git reset --hard <your_last_good_commit_hash_here>
git 推进源源主机
如果您已经向服务器发布错误的文件, 您可以使用 -- 强制旗将文件推到服务器并编辑历史 。
git 推推 -- 原力硕士
有许多方法可以做到:
撤消上次执行/ 上一个承诺的 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
为了撤销最后的本地承诺, 在不丢弃更改的情况下, 我在 ~ /. gitconfig 中有这个便用别名
[alias]
undo = reset --soft HEAD^
然后,我只需要使用Git 解码,这是超级容易记住的。
在我的情况中,我承诺并推向错误的分支, 所以我想要的是把全部的改变都收回来, 这样我就可以把它们投向一个新的正确的分支, 所以我做了这个:
在您承诺和推动的同一分支上, 如果您输入“ gitt status” 键入“ git status” 状态, 您将不会看到任何新事物, 因为您承诺和推动, 现在键入 :
git reset --soft HEAD~1
这将将您所有的更改( 文件) 重新回到舞台区域, 现在把它们重新回到工作目录( 非阶段) 中, 您只要输入 :
git reset FILE
“ 文件” 是您想要再次承诺的文件 。 现在, FILE 应该在工作目录中, 包含您所做的全部更改 。 现在您可以更改为您想要的分支, 并对该分支进行更改 。 当然, 您承诺的初始分支仍然有所有更改, 但对于我来说, 如果不是您的话, 您可以寻找恢复该分支承诺的方法 。
取决于您是否已经公开了您的前一次承诺( 插入到您的远程仓库 ) :
如何撤销本地任务
比方说我承诺了当地, 但现在我想取消那个承诺。
git log
commit 101: bad commit # Latest commit. This would be called 'HEAD'.
commit 100: good commit # Second to last commit. This is the one we want.
要让一切恢复到上次承诺之前的状态 我们需要重置承诺 重置承诺
git reset --soft HEAD^ # Use --soft if you want to keep your changes
git reset --hard HEAD^ # Use --hard if you don't care about keeping the changes you made
现在 git 日志将显示我们最后的承诺已被删除 。
如何撤销公开承诺
如果您已经公开了承诺, 您将会想要创建一个新的承诺, 它将“ 撤销” 您对上一个承诺( 当前 HEAD) 所做的更改 。
git revert HEAD
你们的更改将恢复,并准备好你们承诺:
git commit -m 'restoring the file I removed by accident'
git log
commit 102: restoring the file I removed by accident
commit 101: removing a file we don't need
commit 100: adding a file that we need
更多信息,请查看 Git Basics - 撤销一些事情 。