使用SourceTree还原/删除特定分支上的特定Git提交?

时间:2015-08-03 19:44:20

标签: git atlassian-sourcetree

我使用BitBucket和SourceTree。我有两个分支Dev_1.2.2Dev_1.2.3

我在Dev_1.2.2上提交了一些文件但没有推送。我不想在Dev_1.2.2上提交或推送这些文件,因此我在Dev_1.2.3成功提交了文件,但无法从Dev_1.2.2恢复/删除提交。

如何使用SourceTree从分支恢复此提交?

3 个答案:

答案 0 :(得分:1)

不完全确定你在问什么,但我可以看到两个选项:

撤消提交

要反转SourceTree中的特定提交,请执行以下操作:

  • 在左边的分支列表中双击Dev_1.2.2分支,查看Dev_1.2.2分支。
  • 在提交历史记录图表中,选择有问题的提交。
  • 右键单击提交,然后从上下文菜单中选择“反向提交...”。
  • 在显示的确认对话框中确认操作。

应该这样做,它会创建一个反转提交。您的历史记录现在将显示您首先添加了文件,然后是第二次提交,表明您已再次删除它们。

重置为先前提交

如果你想在没有显示历史记录的情况下摆脱整个提交,你可以在添加文件之前将分支重置为提交。

为此,您需要执行以下操作:

  • 在左边的分支列表中双击 alter table table_name nocheck constraint fk_constraint 分支,查看 getViewSite().getPage().addPartListener(new IPartListener() { @Override public void partOpened(IWorkbenchPart part) { } @Override public void partDeactivated(IWorkbenchPart part) { } @Override public void partClosed(IWorkbenchPart part) { } @Override public void partBroughtToTop(IWorkbenchPart part) { } @Override public void partActivated(IWorkbenchPart part) { // Add view initialization from the new part } }); 分支。
  • 在提交历史记录图表中,找到有问题的提交。
  • 接下来,在添加文件之前立即选择提交。确保它在同一分支中。
  • 右键单击该提交,然后选择“将Dev_1.2.2重置为此提交”。
  • 在下一个对话框中,选择“硬”选项并确认操作。

警告:这意味着您将丢失所选提交后所做的任何更改。您的分支将重置为此提交。

答案 1 :(得分:0)

您可以在要删除的提交下方的提交上使用“以交互方式重新设定 [commit hash] 的子项”。

然后使用“删除所选”。

注意,这会重写提交日期,您可以使用 git rebase --committer-date-is-author-date [commit hash] 从命令行修复该日期。

变基后,您需要git push --force

答案 2 :(得分:-2)

使用以下命令

git reset --hard commit_id