GIT-如何在OSX上复制没有鼠标的SHA



在OSX上,我经常去git log以找到一个提交,通常是几个返回,用鼠标复制它,然后重新建立基础。

我怎么能在不使用鼠标或不记住鼠标的情况下轻松做到这一点?

在OSX上,您可以使用pbcopy

因此,要在剪贴板中获得上次提交的SHA1:

git log -1 --format="%H" | pbcopy

只需记住前几个字母/数字。

Git不需要完整的哈希来重新建立基础,它只需要它的前几个字符

例如:

git log

提交674973年前的

提交11be728caad156d5cb6ce336747aab4ee3417b0

提交e63760a22b4e5919961e409a6fac09176a574b6

提交3521260b7d04fc92eaeb9c70fa46999dc1ecda3d

提交

(减去额外的提交内容)

现在,假设您想要第二个11be728caad156d5cb6ce336747aab4e5e3417b0您可以简单地重新设置前几个字符的基础。

git rebase 11be

进一步的信息:从技术上讲,git只需要一个哈希的唯一开头。因此,在这种情况下,git rebase 1就足够了,因为没有其他提交哈希以1开头。然而,在极端情况下,您可能需要超过4-5个字符(非常不可能)

此外,可以随意使用git log -n只获取最后n个提交数。通过将其保持在较低的数字,当您调用rebase时,提交通常仍在屏幕上,因此您不需要记住。只需手动复制前几个字符。提示:如果git在您点击'q'退出后刷新日志输出,则可以使用命令git --no-pager log -n将输出设置为"stick"。


对于添加的关于git和rebase的信息,如果您知道您想要精确地rebase 4个提交,那么您可以使用HEAD引用。您当前的提交是HEAD,前一次提交是HEAD~1等。例如:

git rebase HEAD~4

会将3521260b7d04fc92eaeb9c70fa46999dc1ecda3d设置为新的HEAD(因为我们在ba4868bd6a6b4e9d9a77f66e77be189d37b1ffe8上重新建立基础)

如果您想检查您正在复制的,则为更新版本

这将复制短散列。如果您需要将提交哈希粘贴到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"`

要从n次提交中复制提交哈希,请将其作为参数传递给log命令。

git log HEAD~3 --format="%h" | pbcopy
git log HEAD~3 --format="%H" | pbcopy

HEAD~3替换为要返回的提交数。验证您复制了正确哈希的一种方法是将其粘贴到git-show中

git show <pasted hash>

如果错误,请相应地更改父编号。数字越高,你的历史就越久远。

有关使用波浪号~和胡萝卜^ 遍历提交历史的更多信息,请参阅此SO链接

注:我不确定是否应该只回复wejrowski作为评论,但决定在之前的回答基础上再发布一个回答。感谢Kuhess和Nick Humrich的初步回答

相关内容

  • 没有找到相关文章

最新更新