首页 > 解决方案 > 如果我必须回滚更改,是否需要在 Git 中创建新分支?

问题描述

我承诺(称之为原创)。然后我做了很多改变。现在我想把它们全部回滚。

所以我正在做一个开关/结帐。但我想知道是否(以及为什么)我需要创建新分支(默认选项)。

在此处输入图像描述

标签: tortoisegit

解决方案


第一:放弃提交意味着您要更改历史记录。如果您与其他人一起在一个公共存储库上工作并且您已经推送了您的更改,这可能会出现问题。- 您可以按照以下文本中的说明执行此回滚并强制推送(然后您的协作者需要在拉取后手动调整其本地历史记录),或者您恢复提交(选项revert change by this commit)并推送这些更改(恢复是恢复的正常提交更改并将在拉取时自动应用于您的协作者)。

如果您真的想回滚所有更改,最快的方法是对您要返回的修订执行“硬重置”(然后将历史记录和工作树中的所有文件回滚到该修订版,其他提交将被丢弃,就好像那些从未发生过一样)。

如果您想在历史记录中保留一个或多个提交,您应该进行 rebase 操作。在日志对话框中选择提交,它应该是“新”历史的基础,然后选择“rebase to this revision”。然后将要删除的所有提交标记为跳过并执行变基。

参看。https://tortoisegit.org/docs/tortoisegit/tgit-dug-showlog.html#tgit-dug-showlog-actionshttps://tortoisegit.org/docs/tortoisegit/tgit-dug-rebase.html

(您打算执行“切换”听起来像您有 SVN 背景;Git 中的切换/签出通常意味着您想要切换到现有分支或创建新分支)。


推荐阅读