使用 Git 过滤分支时添加注释以提交

Add note to commit when filtering branch with Git

下一个命令是存储提交历史记录和文件列表,但删除文件内容以最小化磁盘 space 和网络流量消耗,当需要了解巨大的回购历史而不获取大对象时。 这样可以节省很多时间。

git filter-branch -f -d `mktemp -d` \
   --tree-filter '
      find . -type f -not -path ./.git\* |
         while read file; do > "$file"; done
   ' \
   --msg-filter '
      cat - && echo && echo "commit $GIT_COMMIT"
   ' \
   -- metainfo/$BRANCH

我还需要知道源提交哈希。正如您在 --msg-filter 部分中看到的那样,它被附加到提交消息中。

我想在 git notes 中存储源提交哈希。

可能吗?怎么样?

简单的解决方案:不更改提交消息,而是创建文件。

git filter-branch -f -d `mktemp -d` \
   --tree-filter '
      find . -type f -not -path ./\*/.git\* |
         while read file; do > "$file"; done
      echo "$GIT_COMMIT" >.GIT_COMMIT
   ' \
   -- metainfo/$BRANCH