【发布时间】:2020-08-13 17:25:59
【问题描述】:
在寻找将特定提交(由其sha 指定)导出到目录的方法时,我得到了很多指针,每个指针都有很多答案。
可能是因为这样的问题 are under specified, 使多个答案成为可能。
这是我不想想做的:
- 我不想克隆我的多 GB 存储库然后结帐。我想从当前 repo 结帐到一个目录。
- 我要提取的
sha既没有tag也没有branch标记。其实我想要的sha还是一片朦胧。有几个是候选人。
确实,简单地运行git show a1b2c3c:path/to/file/myfile.c(从特定提交中提取特定文件)已经完成了我想要的,除了:
- 我想提取一棵完整的树(从根),而不仅仅是一个文件。
-
git show将文件发送到终端。我想保存到/tmp。
然后我的问题是:如何将sha 中的所有文件提取到/tmp?
为了提供动力,让我提一下这个问题的几个用例。这些是我的问题;他们不是问题!
- 我在过去(可能很遥远)做了一个即兴演示,我想确定该项目的重点。
- 我忽略了将给定文件添加到存储库中,有时需要很长时间才能注意到未添加文件。我想跟踪文件丢失的时间。
【问题讨论】:
-
您链接到的第一个问题显示如何使用
git archive来做到这一点,这有什么问题?这怎么不符合您的要求? -
@JoachimSauer 是
git archive sha一个选项,而不仅仅是git archive | <pipe>和git archive master?让我确认试验是否无害,然后在我这边试验。 -
@JoachimSauer 感谢您的提示。当然,这一切都很简单,但由于我一直在我的“git 备忘单”中寻找这个 Q&A,我已经写了(至少供我自己参考,如果不是每个人的参考)答案,而不是删除问题。我找不到
git archive确实使存储库不可变的正式确认,但是从新/隔离存储库中的实验来看,.git目录中的任何内容都没有被修改,所以答案似乎是肯定的。
标签: git