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

是否使用SourceTree还原/删除特定分支上的特定Git提交?,git,atlassian-sourcetree,Git,Atlassian Sourcetree,我使用BitBucket和SourceTree。我有两个分支称为devu 1.2.2和devu 1.2.3 我在Dev_1.2.2上提交了一些文件,但没有推送。我不想在Dev_1.2.2上提交或推送这些文件,因此我成功地在Dev_1.2.3上提交了文件,但无法从Dev_1.2.2中恢复/删除提交 如何使用SourceTree从分支还原此提交?使用以下命令 git reset--硬提交id不完全确定您在问什么,但我可以看到两个选项: 撤消提交 要反转SourceTree中的特定提交,请执行以下操作

我使用BitBucket和SourceTree。我有两个分支称为
devu 1.2.2
devu 1.2.3

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

如何使用SourceTree从分支还原此提交?

使用以下命令


git reset--硬提交id

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

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

  • 双击左侧分支列表中的
    Dev_1.2.2
    分支,查看该分支
  • 在提交历史图表中,选择有问题的提交
  • 右键单击提交,然后从上下文菜单中选择“反向提交…”
  • 在显示的确认对话框中确认操作
如果这样做,它将创建一个反转提交。您的历史记录现在将显示您首先添加了文件,然后第二次提交显示您再次删除了文件

重置为上一次提交 如果希望在历史记录中不显示整个提交,可以在添加文件之前将分支重置为提交

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

  • 双击左侧分支列表中的
    Dev_1.2.2
    分支,查看该分支
  • 在提交历史图中,找到有问题的提交
  • 接下来,在添加文件之前选择提交。确保它在同一个分支中
  • 右键单击该提交,然后选择“将Dev_1.2.2重置为此提交”
  • 在下一个对话框中,选择“硬”选项并确认操作
警告:这意味着您将丢失在所选提交之后所做的任何更改。您的分支将重置为此提交。

您可以在低于要删除的提交的提交上使用“交互地重新设置[commit hash]的子级基础”

然后使用“删除选定项”

注意,这将重写提交日期,您可以使用git-rebase从命令行修改提交日期——提交日期是作者日期[commit hash]


在rebase之后,您将需要
git push--force

,所以如果我理解正确的话:您有两个分支。你不想推它,但你在另一个分支上做了一些其他工作。现在,您不能从第一个分支恢复更改了吗?您是如何创建第二个分支的?它是第一个分支的一部分吗?Dev_1.2.3是从Dev_1.2.2创建的,Dev_1.2.3是最新的副本。我在Dev_1.2.2上做了一些工作,并使commit(在本地服务器上)不是pull-to-live(Bitbucket)。