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

w8ntj3qf  于 11个月前  发布在  Git
关注(0)|答案(4)|浏览(125)

最近,在一个多人的项目中,提交了一个如下图所示的提交。用红色标记,你可以看到一个描述/注解为“合并?”的提交。
这次提交添加了许多文件,并改变了许多其他文件,并且从未打算发生。
使用atlassian-sourcetree,我需要做什么才能将所有内容回滚到蓝色突出显示的提交?(如屏幕截图所示,我落后了8次提交。)
x1c 0d1x的数据

bxjv4tth

bxjv4tth1#

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

选择你想要回滚到的提交,然后通过点击Reverse FileReverse HunkReverse Selected Lines来撤销更改。对你想要回滚到的提交之后的所有提交都这样做。

如果您还没有将提交推送到上游.

右键单击提交并单击Reset current branch to this commit

c2e8gylq

c2e8gylq2#

我搜索了多个选项来让我的git重置为特定的提交,但大多数都不太令人满意。
我通常使用这个来重置git到源代码树中的特定提交。
1.选择commit to reset on sourcetree.
1.在下拉列表中选择活动分支,首先选择仅父级
1.然后右键单击“重置分支到此提交”并选择硬重置选项(软,混合和硬)
1.然后转到终端git push -f
你应该都准备好了!

c86crjj0

c86crjj03#

有两个选项可以还原合并后的分支的一次提交。

A.使用sourcetree

  • 在提交中右键单击
  • 选择反向提交
  • 有时候会失败,如果是这样的话,请尝试选项B。
    B.使用终端
  • 选择你的提交并查看屏幕底部的信息。示例提交id:* 1a 6cd 9879 d8 c7 d98 cdcd 9da 9 cac 8979 dac 7a 89 c *
  • 点击Sourcetree右上角的“Terminal”选项。
  • 在终端中写入:git revert your_commit_id -m 1
  • 当提交消息编辑器打开时:
  • 对于只是接受和退出,写**:q**然后点击回车。
  • 如果你想改变提交信息,按“i",写你的信息,然后写**:wq**点击回车。
amrnrhlw

amrnrhlw4#

如果master分支需要一个Pull Request来接受更改(例如git flow,你不能git push force你的更改),你可以:

  • Git克隆你的项目副本
  • 转到那个新副本并 checkout 你想要回滚到的提交
  • 在文件资源管理器中转到该提交的根文件夹
  • 复制除. git文件夹以外的所有文件和文件夹
  • 转到原始项目并从master创建新的分支
  • 转到原始项目的根文件夹
  • 删除除. git文件夹以外的所有文件和文件夹
  • 粘贴之前的所有文件和文件夹
  • Git添加所有更改并推送到新的分支
  • 为这个分支做一个PR到master

相关问题