【问题标题】:How can I retrieve the patches associated with a certain file?如何检索与某个文件关联的补丁程序?
【发布时间】:2023-03-24 04:58:02
【问题描述】:

克隆了一个 git repo 后,我想检索与某个文件关联的所有提交,并将每个提交打印在一个单独的文件中。

这肯定和git log或者git格式补丁有关。

谢谢。

【问题讨论】:

    标签: git version-control patch


    【解决方案1】:

    您可以使用 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 似乎不能只为单个文件打补丁。)
    【解决方案2】:

    如果您想在每次提交时查看对文件所做的更改,可以使用“whatchanged”命令

    git whatchanged [options] <file>
    

    看看这个tutorial for creating and applying patches

    【讨论】:

      猜你喜欢
      • 2012-12-29
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      相关资源
      最近更新 更多