GIT - 如何在OSX上不使用鼠标复制SHA?

时间:2014-09-17 20:18:46

标签: macos git pbcopy

在OSX上,我经常去git log找一个提交,通常是一些提交,然后用我的鼠标复制它,然后再关闭它。

如何在不使用鼠标或记忆的情况下轻松完成此操作?

3 个答案:

答案 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"`