【问题标题】:git: what commit was I on before I merged?git:在我合并之前我做了什么提交?
【发布时间】:2016-02-25 03:13:27
【问题描述】:

我刚刚做了一个快进合并,里面有很多提交,它破坏了一些功能。

(如何)我可以找出我在合并之前所做的提交吗?

【问题讨论】:

  • 试试git-reflog
  • 这可能是一种灵丹妙药,但是如果您在相关分支中进行了最后一次提交,并且您知道日期,那么应该很容易找到您想要的提交只需使用git log
  • 蒂姆——我发现自己不是这种情况!

标签: git


【解决方案1】:

正如 cmets 中已经提到的,您可以为此使用命令 git reflogreflog 创建 Git 分支指针的所有移动。这包括以下操作:

  • 使用 git commit(或创建新提交的其他命令,如 git cherry-pick 或其他)在分支中创建新提交
  • 使用git reset 将分支指针重置为另一个提交
  • 合并另一个分支快进合并和常规3路合并

要查看master 分支提示如何随时间变化,请使用命令

> git reflog master

这将生成如下所示的历史记录:

e03b939 master@{0}: pull: Fast-forward
fa6a265 master@{1}: commit: Added section on project background
c9957fd master@{2}: commit (merge): Merge branch 'feature/foobar'
9d4e390 master@{3}: pull: Merge made by the 'recursive' strategy.
536c04a master@{4}: commit (merge): Merge remote-tracking branch 'origin/master'
d1cf7ad master@{5}: commit: Fix broken formatting
a0cfc5c master@{6}: pull: Fast-forward
c638351 master@{7}: reset: moving to HEAD^
303307e master@{8}: commit: Add awesome feature
...

第一行master@{0} 包含您的master 分支当前指向的提交。第二行 master@{1} 将显示您的 master 分支在执行快进合并之前指向的提交。

要将您的主分支重置为该提交,然后只需使用git reset

> git reset --hard fa6a265

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 2021-05-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-06
    • 2011-03-09
    相关资源
    最近更新 更多