我正在尝试使用 GitHub Desktop(即 GUI 应用程序 - 不是命令行)返回到先前的提交(在同一个分支上)。我认为这是一个核心功能,因为它是首先使用源代码控制的主要原因。
我可以看到可以恢复提交,但这并不是我真正想要的,因为它会创建一个新的提交。我只是想回去选择再次前进,就像我可以跳到不同的分支一样。
这是可能的还是 github 桌面的限制,我需要为此使用 cmd 行?
我正在尝试使用 GitHub Desktop(即 GUI 应用程序 - 不是命令行)返回到先前的提交(在同一个分支上)。我认为这是一个核心功能,因为它是首先使用源代码控制的主要原因。
我可以看到可以恢复提交,但这并不是我真正想要的,因为它会创建一个新的提交。我只是想回去选择再次前进,就像我可以跳到不同的分支一样。
这是可能的还是 github 桌面的限制,我需要为此使用 cmd 行?
通常,您可以使用git reset
.
这对于 GitHub Desktop 是不可能的。GitHub Desktop 更像是一个同步存储库的工具,而不是功能齐全的 GUI 客户端。
但这并不意味着您必须使用命令行,因为还有其他选择。你可以在这里找到一份清单。提几个(支持git reset
):
这是在命令行上执行此操作的方法。大多数客户端在他们的 UI 中使用相同的词汇表提供此功能(通常,您可以通过上下文菜单选择一个提交并重置它)。
您将返回到上一个提交
git reset HEAD^
或更多提交(例如3)
git reset HEAD^3
或通过特定提交
git reset f7823ab
请记住,默认情况下,该选项--mixed
传递给git reset
. 因此,自您重置为该提交以来所做的所有更改仍将存在。
要获得要“还原”的提交的原始状态,您必须通过--hard
. 例如:
git reset f7823ab --hard
这是关于@SevenEleven 答案的评论。在考虑使用git reset
.
git reset
是一个破坏性命令,用于删除目标提交后的更改(运行时的提交哈希git reset [commit hash]
或运行时的最新提交git reset
)。
如果我正确理解了这个问题,则git reset
违反了原始问题中所要求的内容,如引用的那样:“我只想回去选择再次前进”。
git checkout
将是更适合这种情况的命令,它允许观察和分支出先前的提交,同时保持所有更改和历史记录完好无损。
执行完之后git checkout [older-commit-hash]
,可以通过执行命令git checkout [newer-commit-hash]
或者git checkout [branch-name]
为了更好地解释 git checkout/reset/revert 之间的区别,您可以查看(没有双关语)这个资源:
https://www.atlassian.com/git/tutorials/resetting-checking-out-and-reverting
如果您无意中执行了 agit reset
并想要恢复您的更改,您可以参考这个 Stack Overflow 线程:
(编辑:Github Desktop 缺少请求的命令;以下是一些不同操作的说明,您可能会发现它们很有用。)
1. Click History.
2. In the commit history list, click the commit you'd like to revert.
3. Right-click the commit and click Revert This Commit.
来自GitHub的文档