如何根据特定日期从远程 git 存储库中获取文件到本地文件夹?

How to fetch files from a remote git repository to a local folder, based on specific date?

我正在尝试 clone/pull,仅在特定日期(比如 2018-08-06 之后)将所有文件推送到远程存储库。在我的远程存储库中,我有超过 10000 个文件,但我只需要在特定日期将文件推送到存储库。使用以下命令,我可以查看特定时间段的日志:

git log --since=2018-08-03 --until=2018-08-06

现在我只需要克隆这些文件而不是存储库中的所有文件。 请提出建议。

没有办法克隆或者fetch specific files, only git objects (例如:提交)。此外,对每个文件的更改可能分布在多个文件中 提交。

克隆

如果您还没有克隆,请制作一个较浅的克隆:

git clone --depth 1 "$url"

获取

一个选项是在本地识别在此修改过的所有文件 日期范围:

files="$(git log --pretty='' --name-only --since="$since"
  --until="$until")"

然后,得到every commit that touches those files:

revs="$(git log --pretty='%H' -- $files | sort -u)"

并获取它们:

git fetch $revs

注意:这是一种幼稚的方法,您最终可能会获取很多 以任何方式提交。