在OSX上,我经常去git log
找一个提交,通常是一些提交,然后用我的鼠标复制它,然后再关闭它。
如何在不使用鼠标或记忆的情况下轻松完成此操作?
答案 0 :(得分:4)
在OSX上,您可以使用pbcopy
。
所以要在剪贴板中获取上次提交的SHA1:
git log -1 --format="%H" | pbcopy
答案 1 :(得分:3)
记住前几个字母/数字。
Git不需要完全哈希来重新绑定,它只需要它的前几个字符。
例如:
git log
提交a64da17d5f674973ead1a0bcf0196f292313893f
提交11be728caad156d5cb6ce336747aab4e5e3417b0
提交e63760a22b4e5919961e409a66fac09176a574b6
提交3521260b7d04fc92eaeb9c70fa46999dc1ecda3d
提交ba4868bd6a6b4e9d9a77f66e77be189d37b1ffe8
(减去额外的提交内容)
现在,让我们说你想要第二个,11be728caad156d5cb6ce336747aab4e5e3417b0
你可以简单地对前几个角色进行改造。
git rebase 11be
更多信息:从技术上讲,git只需要一个独特的哈希开始。所以在这种情况下,git rebase 1
就足够了,因为没有其他提交哈希以1开头。但是,在极端情况下,你可能需要超过4-5个字符(非常不可能)
此外,您可以随意使用git log -n
来获取最后n次提交。通过将此值保持为较低的数字,当您调用rebase时,提交仍然通常在您的屏幕上,因此您无需记忆。只需手动复制前几个字符即可。提示:如果git在按“q”退出后刷新日志输出,则可以使用命令git --no-pager log -n
将输出“粘贴”。
有关git和rebase的更多信息,如果您知道要重新确定4次提交,则可以使用HEAD
引用。您当前的提交是HEAD
,1提交前是HEAD~1
等。例如:
git rebase HEAD~4
会将3521260b7d04fc92eaeb9c70fa46999dc1ecda3d
设置为新的HEAD
(因为我们在ba4868bd6a6b4e9d9a77f66e77be189d37b1ffe8
上重新定位)
答案 2 :(得分:0)
更新版本,如果您想检查您正在复制的内容
这将复制短哈希。如果您需要将提交哈希粘贴到 GitHub 评论中,则此版本很有用。 GitHub 自动链接提交(参考)。
git log -1 --format="%h" | pbcopy | echo `git log -1 --format="%h"`
这将复制长哈希
git log -1 --format="%H" | pbcopy | echo `git log -1 --format="%H"`