问题标签 [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.
git - Git:如何撤消提交*和*恢复到最后一个分支
呃哦......我错误地提交了一个非常复杂的更改(包括子目录和文件重命名),而我并不真正知道我在做什么(或者 Git 会做什么)。
我现在想撤消所有这些:
- 提交被完全逆转(好像它从未完成过,也许也将它从历史中删除)
- 将当前工作目录(在哪里
.git
)恢复到某个分支(现在最后一个)。
我找到了对git reset --soft和git reset --hard的引用,但我已经向自己证明,在不完全理解命令的情况下过早使用命令会造成真正的损害。:)
我找到了git reset 手册页,但我仍然对以下内容感到困惑:
- 是什么
HEAD
? HEAD
和 和有什么不一样* master
?- 在我的情况下(见上文),我需要使用
--soft
,--hard
还是其他(另外 3 个选项)? - 我是否需要运行另一个命令(在执行之后
git reset
)来“完成”反转?
更新:阅读以下答案后:
- 我是否正确理解在我的情况下我需要做的就是发出一个命令
git reset --hard HEAD^
? - 如何验证是否正确执行了冲销?
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
,因为它说没有要提交的文件。
git - Git恢复不带回早期状态
所以很久以前,我在我的项目中添加了一个包含一组文件的文件夹 abc,并使用修订 xyz 进行了提交。在多次提交后,有人使用 git rm -r abc 删除了该文件夹。在此之后,也有很多提交。
现在我需要取回文件夹 abc。我愿意
在此之后,我可以找到文件夹 xyz,但并非所有在提交 xyz 中添加的文件都存在。
我究竟做错了什么?我不想重置,因为我想保留提交 xyz 和现在之间的历史记录。
git - 用于恢复多个 git 提交的信息性消息
使用还原多个提交时
是否可以要求 git 在新的提交消息中提及您已恢复的所有提交,而不仅仅是其中一个提交?
我在 git 版本 1.6.3.3 上,如果它已在更新的版本中得到修复,我们深表歉意。
git - 还原一个 git 合并提交,然后还原还原
我们的团队使用 Github Pull Requests 来管理我们的工作流程,就像这里描述的一样。在手动审查接受的拉取请求后,我们有时需要恢复该合并,因为它还没有准备好部署到我们的生产服务器。
但是,如果开发人员尝试再次发出拉取请求,它不会识别这些更改已被还原,并且会看到提交已经在主分支中。它只会包括他们自恢复以来最近的提交,但我们真正想要的是重新引入所有已恢复的提交,以及他们的新工作。换句话说,我们喜欢一种重新发出原始拉取请求的方法。
由于 Github 不支持此功能(即,既不恢复合并,也不撤消/重新发出原始拉取请求),我目前正在恢复恢复的合并。这感觉不对。
我可以使用哪些其他方式在 git 中实现相同的目标?(或 Github,如果可能的话)
git - Git Revert、Checkout 和 Reset for Dummies
抱歉,但这三个 git 命令正在消耗我的智慧。
是否可以为所有新手建立一个群组 wiki 来涵盖这三个 git 命令?我想学习的是如何将文件和项目恢复或回滚到以前的状态。
由于我没有使用 subversion 或其他集中式版本控制软件的经验,因此没有必要参考他们如何以不同的方式做事,而且常常令人困惑。
谢谢。
git - Git 还原错误信息?
在尝试恢复对 .emacs.d 文件夹的存储库所做的提交时,我收到以下消息:
我正在尝试做的是反向更改我对 init.el 文件所做的更改,然后是我试图反向的另一个提交。我宁愿恢复而不是重置 --hard 因为据我所知后者完全删除了最近的提交。我想创建一个新的提交,以便我可以“还原”还原。
换句话说,我想做的是这个
将恢复为
难道我做错了什么?
编辑:我尽可能地尝试进行差异/合并,然后再次提交,但它仍然给了我这个新的错误消息:
我如何告诉它忽略(但不删除)未暂存的文件,而不求助于 .gitigore 文件。坦率地说,我不关心大多数未暂存的文件,例如 emacs 临时文件等。
git - Git Revert、Checkout 和 Reset 有什么区别?
我正在尝试学习如何将文件和项目恢复或回滚到以前的状态,但不了解git revert
、checkout
和reset
. 为什么看似相同的目的有 3 个不同的命令,什么时候应该选择一个而不是另一个?
git - 如何像 git-add -p 那样只部分地 git-revert?
我注意到在以前的提交中引入了一个错误,该错误还包含一些其他正确的更改(当时,这些更改似乎相关到足以将所有内容放入单个提交1)。现在,如果我只是git-revert
提交,我也会恢复好的更改,那么有没有办法选择要恢复的部分,可能类似于工作方式git-add -p
?
1)另外,我当时很新鲜......
git - 创建分支后恢复许多提交
我正在使用 git 来管理我的项目,但我对这类程序的经验并不多,所以我经常不正确地使用它们(例如:我只在一次提交中提交了许多(不相关的)更改)。我正在尝试更好地使用它们。
顺便说一句,我注意到我开始开发我的项目的扩展,这将更适合分支。因此,我从 git gui 创建了一个新分支,它是 master 的副本。现在我想将 master 恢复到我所做的最后一次提交,它与项目无关。我知道这个提交是什么,但我不知道如何将所有的提交从 HEAD 恢复到这个,我不知道这是否会影响分支(失去所有新工作会很痛苦..)
那么,我该怎么办?
ps:平时我用的是git gui,但是我用git bash没问题。我使用win7,我在eclipse中管理一个java android项目