英文:
Effectively revert to a previous commit in Sourcetree
问题
我正在尝试实际恢复到以前的提交,有效地取消掉在它之后所做的每一个更改,并将这个以前的提交作为当前提交,位于列表的顶部。
但是,当我使用“将当前分支重置到此提交”功能时,我就无法做任何操作,直到我将所有我试图取消的提交都拉回来。
我觉得很多人在其他帖子的评论中问了完全相同的问题,但他们从未得到明确的答案。执行这个操作的步骤是什么?
英文:
I am trying to actually revert to a previous commit, effectively cancelling every change that has been made after it, and making this previous commit the current one, at the top of the list.
But when I use the function "Reset current branch to this commit", I am then unable to do anything until I pull back all of the commits I am trying to cancel.
I feel like a lot of people have been asking that exact same question in the comments of other posts, but they never receive a clear answer. What is the procedure for doing this?
答案1
得分: 0
不要取消/删除以下提交,那么在这种情况下,我不会使用“重置当前分支到此提交”。
我会打开终端并输入 git checkout c17c46e ./
(将 c17c46e
替换为实际的提交哈希值)。
<br> ./
下的文件(即所有已跟踪的文件)将会恢复到它们的旧状态。<br>
./
是必需的,以防它只是切换到较早的位置并创建一个分离的 HEAD。
此外,不必手动输入提交哈希值,您可以右键单击提交并点击 '复制 SHA 到剪贴板'。
运行该命令后,您可以提交结果并将其推送到远程。
英文:
Since you don't want to cancel/delete the following commits, I wouldn't use "Reset current branch to this commit" at all in that case.
I would open the Terminal and enter git checkout c17c46e ./
(replace c17c46e
with the actual commit hash).
<br>The files under ./
(i.e. all the tracked files) will be changed to their older states.<br>
The ./
is necessary so that it doesn't simply switch to an earlier position and create a detached head.
Also, the commit hash doesn't have to be typed manually, as you can right click a commit and click 'Copy SHA to Clipboard'.
After running that command, you can commit the results and push it to the remote.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论