获取GIT中特定标记的特定文件

时间:2017-07-11 02:16:06

标签: git

我有一个名为foobar的git存储库,它非常大(大约10 GB)。我想自动化在特定标签上获取特定文件的内容并处理它的过程。现在,我做了以下几点:

1. git init 
2. git fetch git://remote/foobar.git SOME_SPECIAL_TAG_03892
3. Get the file xyz.txt

由于repo中有成千上万的标签,分支和历史,因此获取操作最多需要15分钟。但是存储库工作区只有4个文件(其中一个是xyz.txt)。

xyz.txt标记处获取SOME_SPECIAL_TAG_03892的内容的最佳方法是什么?是否可以git remote-ls执行此操作?

3 个答案:

答案 0 :(得分:0)

尝试浅取。

git fetch --depth=1 git://remote/foobar.git SOME_SPECIAL_TAG_03892

答案 1 :(得分:0)

你可以使用

git show SOME_SPECIAL_TAG_03892:xyz.txt

一个例子:

git show tags/v1.0.5:README.md

这将打印README.md的内容在v1.0.5到stdout中的样子,因此您可以随意使用它,例如将其重定向到文件等。

请参阅the docs (<rev>:<path>)以供参考。

答案 2 :(得分:-1)

请尝试以下步骤。希望这些命令可以帮助您

    git show object
    git show $REV:$FILE
    git show somebranch:from/the/root/xyz.txt
    git show HEAD^^^:test/abc.py

该命令采用通常的修订方式,这意味着您可以使用以下任何一种方法:

  1. 分支名称
  2. HEAD + x个^个字符
  3. 给定修订版的SHA1哈希值
  4. 给定SHA1哈希的前几个(可能是10个)字符