当前我们使用git log --pretty=tformat:"%H" -n 1 folder/file
来检索当前签出分支中文件的最新提交哈希。但这需要在本地克隆git-reo。
有没有办法确定远程git repo上特定分支中特定文件的提交哈希?
我需要一个普通的git命令,而不是像git或gitlab这样的git接口的命令。
有没有办法确定远程git repo上特定分支中特定文件的提交哈希?
不完全是。你只能用本地存在的提交来实现这一点,而且不能保证他们有任何提交,你也有。所以这里实际上有两个问题:
-
首先,您需要确定它们用于其分支名称的哈希ID。
-
然后,在完成上述操作后,您需要确保您具有提交的及其前代。
然后,您可以使用本地操作在本地查找您关心的文件最近更改的本地提交,方法与您已经更改的方法相同。但您需要首先同时命中这两个要点。实现的方法是在本地拥有存储库,将另一个Git添加为远程,并对该远程运行git fetch
,这样您就可以获得与其分支名称相对应的的远程跟踪名称。
例如,假设他们的Git存储库的URL是$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
,这有时会节省一点时间。(