从远程git-reo获取特定文件/文件夹的Commit Hash



当前我们使用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,这有时会节省一点时间。(

最新更新