如何根据特定日期从远程 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
注意:这是一种幼稚的方法,您最终可能会获取很多
以任何方式提交。
我正在尝试 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
注意:这是一种幼稚的方法,您最终可能会获取很多 以任何方式提交。