目前,我们使用git log --pretty=tformat:"%H" -n 1 folder/file来检索当前检出分支中文件的最新提交散列。但这需要在本地克隆git存储库。
有没有办法确定远程git存储库上特定分支中特定文件的提交散列?
我需要一个简单的git命令,而不是像git或gitlab这样的git接口命令。
发布于 2021-05-05 18:39:27
有没有办法确定远程git存储库上特定分支中特定文件的提交散列?
不完全是,不。您只能使用本地存在的提交来做到这一点,并且不能保证它们拥有的任何提交都是您拥有的。所以这里实际上有两个问题:
然后,您可以使用本地操作在本地查找您所关心的文件最近被更改的本地提交,方法与您已经在做的相同。但您需要先列出这两个要点。要做到这一点,方法是将存储库放在本地,将另一个Git添加为远程,然后对该远程运行git fetch,这样您就可以获得与其分支名称相对应的远程跟踪名称。
比方说,他们的Git仓库的网址是$url。然后,您可以使用:
git remote add them $url
git fetch them然后对以下内容进行了微小的修改:
git log --pretty=tformat:"%H" -n 1 folder/file
只需在路径名之前添加them/branchname (为了一般安全起见,也可以在路径名之前添加-- ):
git log --pretty=tformat:"%H" -n 1 them/branchname -- folder/file请注意,您只需要使用git remote add一次,但您需要在任何扫描之前运行git fetch them,以获取它们拥有的任何新提交,并将其branchname的更新值保存到您的them/branchname中。
(您可以选择使用git fetch them branchname,这有时会节省一点时间。)
https://stackoverflow.com/questions/67398088
复制相似问题