【发布时间】:2023-03-24 04:58:02
【问题描述】:
克隆了一个 git repo 后,我想检索与某个文件关联的所有提交,并将每个提交打印在一个单独的文件中。
这肯定和git log或者git格式补丁有关。
谢谢。
【问题讨论】:
标签: git version-control patch
克隆了一个 git repo 后,我想检索与某个文件关联的所有提交,并将每个提交打印在一个单独的文件中。
这肯定和git log或者git格式补丁有关。
谢谢。
【问题讨论】:
标签: git version-control patch
您可以使用 git rev-list 检索所有涉及路径的提交的 sha1:
$ git rev-list --all -- path
这将为您提供触及该路径的每个提交的列表 sha1。如果你想要提交信息和补丁,你可以使用git log:
$ git log --all -- path
$ git log --all -p -- path
【讨论】:
git rev-list [--all] -- <path> | while read c; do git log -1 -p $c -- <path> > $c.patch; done。如果你想知道它们的顺序,你可能想像 format-patch 那样在上面添加一个计数器。 (不幸的是,format-patch 似乎不能只为单个文件打补丁。)
如果您想在每次提交时查看对文件所做的更改,可以使用“whatchanged”命令
git whatchanged [options] <file>
【讨论】: