Git 提取作为单独的文件提交

标签 git version-control

我有一个 git 存储库,其中有一个文件,几乎每天都会添加新的提交。

我想在查看对新目录的每次提交时提取文件的副本。

理想情况下,文件将根据提交时间进行日期标记( 2017_08_24.txt )。

我已经尝试过git format-patch -o directory --root HEAD但这会导出更改日志,而不是提交时查看的完整文件。

谢谢

最佳答案

git show <commit>:<file>将为您提供文件的内容,因为它位于特定的提交哈希中。您可以使用git log获取文件上的所有提交,然后使用 xargs将它们传递给git show .

以下命令行将提取一系列具有原始名称和连接到它们的提交哈希的文件:

$ git log --format="%H" /path/to/file | \
xargs -I % sh -c "git show %:/path/to/file > /path/to/target/filename.%"

关于Git 提取作为单独的文件提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45856034/

相关文章:

version-control - 稍后在 RTC 中查找先前删除的代码?

git - Git 在服务器的什么地方存储文件?

Gitlab推送不起作用, pull 完美

git - 在远程存储库中使用 GIT 的正确方法是什么?

eclipse - m2e 和项目元数据文件

xcode - git 不跟踪移动的文件

git - 使用 Git 处理大型代码库和多个开发人员的多次提交

git - 如何获取在预接收 Hook 中提交的所有哈希值?

git - 关于 git pull 机制

python - 避免过时的 *.pyc 文件的最佳方法?