我希望在远程存储库中检索最新的提交哈希,而不管分支是什么。
我尝试过git ls-remote <remote>
和git ls-remote --tags <remote>
,但它们似乎都是按标签名称排序的,因此无法找出最新的标签。
例如,在Github上,您可以转到Insights / Network,并获得一个包含所有分支和提交的图形-但是,在该gui中工作显然并不理想-但数据应该以某种方式存在。
有没有办法从远程获取最新的提交哈希值,而与分支无关吗?
答案 0 :(得分:2)
您可以将if(activeTabs.length===0){
chrome.tabs.executeScript(tab.id, {file:'jquery.min.js'},function(){
chrome.tabs.executeScript(tab.id, {file:'js/inject.js'});
});
}
与遥控器一起使用:
git show
将向您显示git show origin/master
的最后一次提交
编辑: 为了获得“绝对的”最新提交,我将采取以下措施:
origin/master
这将记录所有远程分支(git log -n 1 $(git branch -r)
)。但是将仅保留第一个提交(git branch -r
)。
我不太确定时间顺序,但是在我的回购中似乎给了我最新的信息。
另一种选择,更像“单线”:
-n 1
将列出每个远程分支的最后提交,其格式为:日期在第一位,然后排序(在日期上),并保留第一个
答案 1 :(得分:2)
git的最新版本(不知道哪个-2.14否,而2.21允许)在ls-remote中使用“ --sort”选项。您可以轻松做到:
git ls-remote --sort=committerdate
但是请注意-如果有必要调查对象以实现排序(如上例所示),则对象必须在本地可用。否则,您将收到错误消息“致命:缺少对象”。因此,请务必在使用git fetch
之前先进行操作。
老实说-由于必须确保在本地获取所有远程分支后才能使用它,因此这比仅在获取后执行git branch -r --sort=committerdate
更好。唯一明显的区别是ls-remote直接显示了您要搜索的提交哈希,而使用git branch则必须像这样包装成git rev-parse:
git rev-parse `git branch -r --sort=committerdate | tail -1`
答案 2 :(得分:1)
例如,从远程“来源”获取
git fetch origin
在“ refs / remotes / origin”下打印所有远程分支的信息,
git for-each-ref refs/remotes/origin
按提交日期降序排列
git for-each-ref refs/remotes/origin --sort="-committerdate"
获取最新消息,
git for-each-ref refs/remotes/origin --sort="-committerdate" | head -1
如果您也考虑使用标签,则上述结果可能不是最新提交。要找出标记指向的最新提交,
git for-each-ref refs/tags --sort="-*committerdate" | head -1
请注意,标记可能带有注释,因此这里*
是必需的。
您可能还对其他名称空间下的引用感兴趣,例如废弃的请求请求。比较每组裁判的最新提交,并在其中获得最新的提交。