问题标签 [git-revert]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8432 浏览

git - Git:如何撤消提交*和*恢复到最后一个分支

呃哦......我错误地提交了一个非常复杂的更改(包括子目录和文件重命名),而我并不真正知道我在做什么(或者 Git 会做什么)。

我现在想撤消所有这些:

  1. 提交被完全逆转(好像它从未完成过,也许也将它从历史中删除)
  2. 将当前工作目录(在哪里.git)恢复到某个分支(现在最后一个)。

我找到了对git reset --softgit reset --hard的引用,但我已经向自己证明,在不完全理解命令的情况下过早使用命令会造成真正的损害。:)

我找到了git reset 手册页,但我仍然对以下内容感到困惑:

  1. 是什么HEAD
  2. HEAD和 和有什么不一样 * master
  3. 在我的情况下(见上文),我需要使用--soft,--hard还是其他(另外 3 个选项)?
  4. 我是否需要运行另一个命令(在执行之后git reset)来“完成”反转?

更新:阅读以下答案后:

  1. 我是否正确理解在我的情况下我需要做的就是发出一个命令git reset --hard HEAD^
  2. 如何验证是否正确执行了冲销?
0 投票
1 回答
792 浏览

git - Git Revert 然后提交,但想在恢复之前保持修订

我的提交已经推送到 Github,比如说

A > B > C > D > E -- 头部

我想恢复到 B ,所以我使用

git reset --hard <B:Hash>

现在,它看起来像

A > B -- 头部

所以,如果我将它推送到服务器git push --force,我在存储库中丢失了 C、D、E

如何还原文件并提交为最后一个修订版本,如 A > B > C > D > E > F

F = 还原:B

我不能使用git commit,因为它说没有要提交的文件。

0 投票
2 回答
119 浏览

git - Git恢复不带回早期状态

所以很久以前,我在我的项目中添加了一个包含一组文件的文件夹 abc,并使用修订 xyz 进行了提交。在多次提交后,有人使用 git rm -r abc 删除了该文件夹。在此之后,也有很多提交。

现在我需要取回文件夹 abc。我愿意

在此之后,我可以找到文件夹 xyz,但并非所有在提交 xyz 中添加的文件都存在。

我究竟做错了什么?我不想重置,因为我想保留提交 xyz 和现在之间的历史记录。

0 投票
1 回答
218 浏览

git - 用于恢复多个 git 提交的信息性消息

使用还原多个提交时

是否可以要求 git 在新的提交消息中提及您已恢复的所有提交,而不仅仅是其中一个提交?

我在 git 版本 1.6.3.3 上,如果它已在更新的版本中得到修复,我们深表歉意。

0 投票
3 回答
3714 浏览

git - 还原一个 git 合并提交,然后还原还原

我们的团队使用 Github Pull Requests 来管理我们的工作流程,就像这里描述的一样。在手动审查接受的拉取请求后,我们有时需要恢复该合并,因为它还没有准备好部署到我们的生产服务器。

但是,如果开发人员尝试再次发出拉取请求,它不会识别这些更改已被还原,并且会看到提交已经在主分支中。它只会包括他们自恢复以来最近的提交,但我们真正想要的是重新引入所有已恢复的提交,以及他们的新工作。换句话说,我们喜欢一种重新发出原始拉取请求的方法。

由于 Github 不支持此功能(即,既不恢复合并,也不撤消/重新发出原始拉取请求),我目前正在恢复恢复的合并。这感觉不对。

我可以使用哪些其他方式在 git 中实现相同的目标?(或 Github,如果可能的话)

0 投票
4 回答
1088 浏览

git - Git Revert、Checkout 和 Reset for Dummies

抱歉,但这三个 git 命令正在消耗我的智慧。

是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?我想学习的是如何将文件和项目恢复或回滚到以前的状态。

由于我没有使用 subversion 或其他集中式版本控制软件的经验,因此没有必要参考他们如何以不同的方式做事,而且常常令人困惑。

谢谢。

0 投票
3 回答
13546 浏览

git - Git 还原错误信息?

在尝试恢复对 .emacs.d 文件夹的存储库所做的提交时,我收到以下消息:

我正在尝试做的是反向更改我对 init.el 文件所做的更改,然后是我试图反向的另一个提交。我宁愿恢复而不是重置 --hard 因为据我所知后者完全删除了最近的提交。我想创建一个新的提交,以便我可以“还原”还原。

换句话说,我想做的是这个

将恢复为

难道我做错了什么?

编辑:我尽可能地尝试进行差异/合并,然后再次提交,但它仍然给了我这个新的错误消息:

我如何告诉它忽略(但不删除)未暂存的文件,而不求助于 .gitigore 文件。坦率地说,我不关心大多数未暂存的文件,例如 emacs 临时文件等。

0 投票
7 回答
145643 浏览

git - Git Revert、Checkout 和 Reset 有什么区别?

我正在尝试学习如何将文件和项目恢复或回滚到以前的状态,但不了解git revertcheckoutreset. 为什么看似相同的目的有 3 个不同的命令,什么时候应该选择一个而不是另一个?

0 投票
1 回答
124 浏览

git - 如何像 git-add -p 那样只部分地 git-revert?

我注意到在以前的提交中引入了一个错误,该错误还包含一些其他正确的更改(当时,这些更改似乎相关到足以将所有内容放入单个提交1)。现在,如果我只是git-revert提交,我也会恢复好的更改,那么有没有办法选择要恢复的部分,可能类似于工作方式git-add -p

1)另外,我当时很新鲜......

0 投票
2 回答
499 浏览

git - 创建分支后恢复许多提交

我正在使用 git 来管理我的项目,但我对这类程序的经验并不多,所以我经常不正确地使用它们(例如:我只在一次提交中提交了许多(不相关的)更改)。我正在尝试更好地使用它们。

顺便说一句,我注意到我开始开发我的项目的扩展,这将更适合分支。因此,我从 git gui 创建了一个新分支,它是 master 的副本。现在我想将 master 恢复到我所做的最后一次提交,它与项目无关。我知道这个提交是什么,但我不知道如何将所有的提交从 HEAD 恢复到这个,我不知道这是否会影响分支(失去所有新工作会很痛苦..)

那么,我该怎么办?

ps:平时我用的是git gui,但是我用git bash没问题。我使用win7,我在eclipse中管理一个java android项目