什么是Git Reflog中的第二列



我只是做了一个简单的 git reflog,这是我得到的前几行:

column1                 Column2                                Column3
2797a1d4 (HEAD -> master, upstream/master) HEAD@{0}: checkout: moving from master to master
2797a1d4 (HEAD -> master, upstream/master) HEAD@{1}: pull upstream master: Fast-forward
a461a29f HEAD@{2}: checkout: moving from master to master
a461a29f HEAD@{3}: reset: moving to HEAD
a461a29f HEAD@{4}: pull upstream master: Fast-forward
784f2cp3 (yy, alphabets, hotFix) HEAD@{5}: checkout: moving from yy to master
784f2cp3 (yy, alphabets, hotFix) HEAD@{6}: checkout: moving from master to yy
784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master

我试图了解每列代表什么。从这篇文章中阅读,我已经学到了这个问题:

  • 第1列显然是提交,
  • 列2是我感到困惑的地方。我了解HEAD@{0}HEAD@{7}概念。请勿在括号中获得零件!(yy, alphabets, hotFix)代表什么?
  • 列3是动作,即结帐/拉消息。

此外,我不确定为什么同一提交有多个行?是因为不同的分支都指向相同的提交,并且它们之间没有代码更改?

reflog告诉您HEAD是如何移动的。有三个以上的列。git文档对此很挑剔。事实证明,git reflog只是git log带有某些开关的别名。

git reflog show [默认值]是git log -g --abbrev-commit --pretty=oneline;

的别名
784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master
  1. 784f2cp3缩写的提交。
  2. (yy, alphabets, hotFix)分支在此提交上,就像 git log --decorate一样。
  3. HEAD@{7}此提交相对于HEAD的位置,由-g添加。
  4. checkout运行了什么命令。
  5. moving from alphabets to master人类可读描述。

(4和5在技术上是相同的列。(

这说您在分支alphabets上,并运行git checkout master

此外,我还不确定为什么同一提交有多个行?是因为不同的分支都指向相同的提交,并且它们之间没有代码更改?

是的,完全是。

784f2cp3 (yy, alphabets, hotFix) HEAD@{5}: checkout: moving from yy to master
784f2cp3 (yy, alphabets, hotFix) HEAD@{6}: checkout: moving from master to yy
784f2cp3 (yy, alphabets, hotFix) HEAD@{7}: checkout: moving from alphabets to master

yyalphabetshotFixmaster都在同一提交上。在它们之间检查一下,只需更改哪个分支头将移动下一个提交。

其他可能是运行git pull时发生的内部HEAD运动。git pullgit fetchgit merge的组合。

相关内容

  • 没有找到相关文章

最新更新