程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何撤消 Git 中最近的本地提交?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何撤消 Git 中最近的本地提交??

开发过程中遇到如何撤消 Git 中最近的本地提交?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何撤消 Git 中最近的本地提交?的解决方法建议,希望对你解决如何撤消 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)
  1. 该命令负责。它将撤消您的最后一次提交,同时您需要再次添加它们,然后才能再次提交它们)。
  2. 对工作树文件进行更正。
  3. git add 您想要包含在新提交中的任何内容。
  4. 提交更改,重用旧的提交消息。reset将旧头复制到.git/ORIG_headcommitwith-c ORIG_head将打开一个编辑器,它最初包含来自旧提交的日志消息,并允许您对其进行编辑。如果您不需要编辑消息,则可以使用该-C选项。

commit --amend会将当前索引内的更改添加到先前的提交。

重写历史记录git push origin master --force

上面的答案将向您显示git reflog,您可以使用它来确定要还原到的提交的 SHA-1。获得此值后,请使用上述命令序列。

如果您不知道它是如何工作的,那么撤消提交有点可怕。但是,如果您确实理解,它实际上非常容易。我将向您展示可以撤消提交的 4 种不同方式。

选项1: git reset --hard

假设您有这个,其中 C 是您的 head, (F) 是您的文件状态。

   (F)
A-B-C
    ↑
  master

您想。你做这个:

git reset --hard head~1

结果是:

 (F)
A-B
  ↑
master

现在 B 是 head。因为您使用了--hard,您的文件将重置为提交 B 时的状态。

选项2: git reset

啊,但假设提交 C 不是一场灾难,只是有点偏离。您想在进行更好的提交之前以进行一些编辑。从这里重新开始,以 C 为您的 head:

   (F)
A-B-C
    ↑
  master

您可以执行此操作,而无需执行以下操作--hard

git reset head~1

在这种情况下,结果是:

   (F)
A-B-C
  ↑
master

在这两种情况下, head 只是指向最新提交的指针。当你执行 a 时git reset head~1,你告诉 Git 将 head 指针移回一次提交。但是(除非您使用--hard),您将文件保持原样。所以现在git status显示您已签入 C 的更改。您没有丢失任何东西!

选项3: git reset --soft

对于最轻的接触,您甚至可以:

git reset --soft head~1

这不仅让您的文件独自一人,它甚至让您的索引独自一人。当你这样做时git status,你会看到索引中的文件和以前一样。事实上,在这个命令之后,你可以这样做,git commit并且你会重做你刚才所做的同样的提交。

选项 4:您做了git reset --hard并且需要取回该代码

还有一件事:像第一个示例中那样,?运气不好,对吧?

不行,还是有办法找回来的。键入git reflog,您将看到您移动的(部分)提交shas(即哈希)列表。找到您销毁的提交,然后执行以下操作:

git checkout -b someNewBranchname shaYouDestroyed

你现在已经恢复了那个提交。提交在 Git 中实际上不会在大约 90 天内被销毁,因此您通常可以返回并拯救一个您不想摆脱的。

解决方法

我不小心将错误的文件提交给Git,但尚未将提交推送到服务器。

如何从本地存储库撤消这些提交

唯一的方法似乎是在某种 GUI 文本编辑器中复制编辑,然后擦除整个本地克隆,然后重新克隆存储库,然后重新应用编辑。然而,

  • 这可能会导致数据丢失。
  • 当只发生意外时,很难做到这一点git commit

有没有更好的办法?

大佬总结

以上是大佬教程为你收集整理的如何撤消 Git 中最近的本地提交?全部内容,希望文章能够帮你解决如何撤消 Git 中最近的本地提交?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: