如何将所有内容回滚到以前的提交

cap*_*rad 44 git git-commit atlassian-sourcetree

最近在一个有多人的项目中,提交了一个提交,如下图所示.标记为红色,您可以看到提交与"合并?"的描述/评论.

这个提交添加了许多文件并改变了许多其他文件并且从未打算过.

使用我需要做什么才能将所有内容回滚到以蓝色突出显示的提交?(我在屏幕截图中看到了8个提交.)

sourcetree麻烦

0xc*_*aff 65

如果您已将提交推送到上游...

选择提交你想回滚到并通过点击逆转的变化Reverse File,Reverse HunkReverse Selected Lines.在您想要回滚的提交之后为所有提交执行此操作.

反向的东西 反向提交

如果你没有推动上游的提交......

右键单击提交,然后单击Reset current branch to this commit.

重置分支以提交

  • 接下来是什么?在我将分支重置为上一次提交后,它要求我将所有内容恢复到当前版本.我无法推动任何东西 (6认同)
  • 这个想法是一样的.随意修复它@Yeats (3认同)
  • 我试过了...... gui把它变灰了.终端也不行 (2认同)

Sid*_*ota 19

我搜索了多个选项,让我的git重置为特定提交,但大多数都不是那么令人满意.

我通常使用它来将git重置为源树中的特定提交.

  1. 选择提交以在sourcetree上重置.

  2. 在下拉列表中选择活动分支,首先是"仅父级"

  3. 并右键单击"将分支重置为此提交"并选择硬重置选项(软,混合和硬)

  4. 然后转到终端git push -f

你应该全力以赴!

  • 这个答案在推送到上游提交后也有效 (4认同)
  • 答案是安全的**如果你没有推动上游的提交** (2认同)

小智 6

有两种选项可以恢复合并分支的一项提交。

A. 使用源码树

  • 右键单击提交
  • 选择反向提交
  • 有时,它可能会失败。在这种情况下,请尝试选项 B。

B. 使用终端

  • 选择您的提交并查看屏幕底部的信息。示例提交 ID:1a6cd9879d8c7d98cdcd9da9cac8979dac7a89c

  • 单击Sourcetree右上角的“ Terminal ”选项。

  • 在终端中写入:git revert your_commit_id -m 1

  • 当提交消息编辑器打开时:

    • 如果只是接受并退出,请输入:q然后单击 Enter。
    • 如果您想更改提交消息,请按“ i ”,写下您的消息,然后输入:wq单击 Enter。