我刚刚做了一个包含大量提交的快进合并,它破坏了一些功能。
(如何)我能知道我在合并前进行了哪些提交吗?
如注释中所述,您可以使用命令git reflog
进行此操作。reflog创建Git分支指针的所有移动。这包括以下操作:
- 使用
git commit
(或其他创建新提交的命令,如git cherry-pick
或其他命令)在分支中创建新提交 - 使用
git reset
将分支指针重置为另一个提交 - 合并另一个分支快进合并和常规三向合并
要查看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