Sourcetree - 撤消未提交的提交

dei*_*988 197 datasourcecontrol atlassian-sourcetree

我正在使用Sourcetree for Windows作为git-repository,并希望撤消未刷新的提交.

那可能吗?如果我"还原提交",它会创建第二个提交,它会恢复第一个提交,但我不希望第一个提交在我的源代码管理中出现.

我也可以删除我的本地存储库并在没有本地提交的情况下再次将其删除,但也许还有另一种方法?

nig*_*yop 328

  1. 右键单击要重置为的提交(不是您要删除的提交!)
  2. 选择"将master重置为此提交"
  3. 选择"软"重置.

软重置将保持您的本地更改.

资料来源:https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree

编辑

关于git revert:此命令创建一个新的提交,它将撤消其他提交.例如,如果您有一个添加新文件git revert的提交,则可以用于进行删除新文件的提交.

有关应用软复位:假设你有提交AE(A---B---C---D---E)和你想删除最后的commit( E).然后你可以进行软复位来提交D.使用软重置提交E将从git中删除,但将保留本地更改.git reset文档中有更多示例.

  • 或者,如果您正在处理分支 - "将当前分支重置为此提交" (34认同)
  • 我非常不理解这些UI解释...将当前分支重置为此提交这么多听起来不会删除提交.它最终做了你期望的更多.它将我的工作副本重置为提交,而不是删除它. (5认同)

Muh*_*ais 43

如果选择要还原到的日志条目,则可以单击"重置为此提交".如果未推送反向提交更改,则仅使用此选项.如果您担心丢失更改,那么您可以使用软模式,这将留下一组未提交的更改(您刚才更改的内容).使用混合重置工作副本但保留这些更改,并且很难完全摆脱这些更改.这是一些截图:

在此输入图像描述

  • 如果您仍然看到一个图标显示您之前的提交(您刚刚删除)中提供了Push,则pull和Sourcetree似乎更新了UI. (3认同)

jna*_*jna 8

如果要删除提交,可以将其作为交互式变基的一部分进行。但是请谨慎操作,以免最终弄乱您的回购。

在源树中:

  1. 右键单击比您要删除的提交更旧的提交,然后选择“以交互方式重新设定 xxxx 的子项... ”。您单击的那个将成为您的“基础”,您可以对该提交之后的每个提交进行更改。

截图 1

  1. 在新窗口中,选择要删除的提交,然后按底部的“删除”按钮,或右键单击该提交并单击“删除提交”。
  2. 项目清单
  3. 单击“确定”(如果要中止,请单击“取消”)。

查看此Atlassian 博客文章,了解有关 Sourcetree 中交互式变基的更多信息。