我有一个名为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
执行此操作?
答案 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
该命令采用通常的修订方式,这意味着您可以使用以下任何一种方法:
HEAD
+ x个^
个字符