gpt4 book ai didi

git - 有没有直接的方法来确定 Git 的 @{-N} 分支,而不是例如解析日志或静默运行 checkout ?

转载 作者:太空狗 更新时间:2023-10-29 14:41:15 24 4
gpt4 key购买 nike

我想在 Git 中找到一种方法来确定 @{-N} 所指的分支,这是我可以在脚本中使用的东西。

它似乎没有出现在任何地方。我可以想出几种自己构建功能的方法,例如解析 .git/logs/HEAD,在 post-checkout 写入自定义日志文件(两者都可行解决方案,但他们感觉很笨拙),或者静默运行 checkout @{-N} 然后静默运行 checkout - (慢,不一定能很好地处理肮脏的工作树,并更改 checkout 堆栈)。

但是有什么办法可以直接得到吗?例如,有没有一种方法可以使用 Git 本身正在使用的函数,而无需复制大量 Git 源代码?我相信该语法是在 https://github.com/git/git/commit/8415d5c7ef63237f6efab0c9aef0b0fdbcbfda25 中首次引入的(git branch) 和 https://github.com/git/git/commit/c9717ee97075bb333684fa2f63e9136c5f7d89bf (git merge),这里是用我不熟悉的内部函数计算的。

我也对指向 Git 源代码中与此相关的其他提交的评论感兴趣。

最佳答案

使用git rev-parse:

$ git rev-parse --symbolic-full-name @{-1}
refs/tags/v2.1.0
$ git rev-parse --symbolic-full-name @{-2}
refs/heads/master

请注意,如果其中之一没有符号全名,则此特定表单无输出:

$ git rev-parse --symbolic-full-name @{-3}
$ git rev-parse @{-3}
6c4ab27f2378ce67940b4496365043119d7ffff2

发生这种情况是因为 @{-3} 根本不是一个分支,它是一个原始的提交散列。

关于git - 有没有直接的方法来确定 Git 的 @{-N} 分支,而不是例如解析日志或静默运行 checkout ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55660409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com