我正在将Sourcetree for Windows用于git存储库,并希望撤消未推送的提交。
那可能吗?如果我执行“还原提交”,它将创建第二个提交以还原第一个提交,但是我根本不希望第一个提交出现在我的源代码管理中。
我也可以删除本地存储库,然后在没有本地提交的情况下再次将其拉出,但是也许还有另一种方法吗?
我正在将Sourcetree for Windows用于git存储库,并希望撤消未推送的提交。
那可能吗?如果我执行“还原提交”,它将创建第二个提交以还原第一个提交,但是我根本不希望第一个提交出现在我的源代码管理中。
我也可以删除本地存储库,然后在没有本地提交的情况下再次将其拉出,但是也许还有另一种方法吗?
Answers:
软重置将保留您的本地更改。
资料来源:https : //answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
编辑
关于git revert
:此命令创建一个新的提交,它将撤消其他提交。例如,如果您有一个添加了新文件git revert
的提交,则可以使用该提交来删除新文件。
关于应用软重置:假设您拥有A
对E
(A---B---C---D---E
)的提交,并且您想删除最后一次提交(E
)。然后,您可以进行软重置以提交D
。进行软重置后,提交E
将从git中删除,但将保留本地更改。git reset文档中还有更多示例。
如果选择了要还原到的日志条目,则可以单击“重置为此提交”。仅当您未推送反向提交更改时才使用此选项。如果您担心丢失更改,则可以使用软模式,该模式将保留一组未提交的更改(您所做的更改)。使用混合模式会重置工作副本,但会保留这些更改,而硬硬盘将完全摆脱更改。这是一些屏幕截图:
如果要删除提交,可以将其作为交互式基础的一部分。但是请谨慎操作,以免最终弄乱您的存储库。
在Sourcetree中:
请查看此Atlassian博客文章,以获取有关Sourcetree中交互式变基的更多信息。