我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
我无意间把错误的档案 写错给Git 基特,但还没有将承诺推进到服务器上。
我如何解除那些承诺?当地当地仓库?
当前回答
使用此命令
git checkout -b old-state 0d1d7fc32
其他回答
这将添加一个新的承诺, 删除所添加的文件 。
git rm yourfiles/*.class
git commit -a -m "deleted all class files in folder 'yourfiles'"
或者您可以重写历史来撤销最后一项承诺 。
警告警告警告警告:此命令将永久删除对《京都议定书》的修改.java
您承诺的文件( 和任何其他文件) -- 从工作目录中删除全部修改 :
git reset --hard HEAD~1
缩略hard reset
至HEAD-1
您的工作副本将在您错误犯罪之前设定为犯罪状态 。
日期 于源树树( GitHub 的 GUI) , 您可以右键单击承诺并做一个“ 反向提交 ” 。 这将取消您的更改 。
在终点站上:
可选择使用:
git revert
或者:
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 your changes.
如何撤销最后的 Git 承诺 ?
为了让一切恢复到上次承诺之前的状态 我们需要重置在总部总部之前的承诺
如果你不想保留你所做的改变:
git reset --hard HEAD^
如果您想要保留您的更改 :
git reset --soft HEAD^
现在检查您的 git 日志。 它会显示我们上次的承诺已被删除 。
$ git commit -m "Something terribly misguided" # (0: Your Accident)
$ git reset HEAD~ # (1)
[ edit files as necessary ] # (2)
$ git add . # (3)
$ git commit -c ORIG_HEAD # (4)
git reset
是负责取消对。它会解除您最后的承诺,而您的工作树( 您在磁盘上的文件状态) 尚未被移动 。在你再次犯下罪行之前,你需要再加一次)。git add
任何您想要包含在您新承诺中的内容 。reset
复制旧头头到.git/ORIG_HEAD
; commit
与-c ORIG_HEAD
将打开编辑器,该编辑器最初包含旧承诺的日志消息,并允许您编辑它。如果不需要编辑该消息,您可以使用该-C
选项。或者编辑上一个承诺( 或仅其承诺信件), commit --amend
将在当前索引内对上一个承诺添加变化。
要删除( 不再返回) 被推到服务器的承付重写历史git push origin main --force[-with-lease]
这是必要的。这是几乎几乎总是使用一个坏主意--force
; 偏; 更优--force-with-lease
改为,如以下所示:Git 手册:
如果你[重写历史]已经发表,你应该了解重写历史的意义。
您可以使用git reflog
确定 SHA-1用于您想要返回的承诺。 一旦您拥有此值, 请使用上文解释的顺序命令 。
HEAD~
与HEAD~1
该条什么是头在Git?如果您想要解开多项承诺, 将会很有帮助 。
以下是网站: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 :)