jot*_*tik 1 git git-filter-branch
git是否提供了一种基于文件中指定的替换自动重写git存储库历史记录的方法.mailmap(git help shortlog有关详细信息,请参阅参考资料)?
cd repository.git
somecommand /path/to/.mailmap # <-- ???
Run Code Online (Sandbox Code Playgroud)
这没有简短的git命令.人们需要使用git filter-branch --commit-filter <command> [...]地方<command>改变了GIT_AUTHOR_NAME,GIT_AUTHOR_EMAIL,GIT_COMMITTER_NAME并GIT_COMMITTER_EMAIL使用变量git check-mailmap与-c mailmap.file=/path/to/.mailmap或-c mailmap.blob=SOMEREV:path/to/.mailmap,例如使用.mailmap从主分支文件,可以使用
git filter-branch --commit-filter '
R=`echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL>" | git -c mailmap.blob=master:.mailmap check-mailmap --stdin`
GIT_AUTHOR_NAME="${R% <*@*>}"
R="${R##* <}"
GIT_AUTHOR_EMAIL="${R%>}"
R=`echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL>" | git -c mailmap.blob=master:.mailmap check-mailmap --stdin`
GIT_COMMITTER_NAME="${R% <*@*>}"
R="${R##* <}"
GIT_COMMITTER_EMAIL="${R%>}"
git commit-tree "$@"
' HEAD
Run Code Online (Sandbox Code Playgroud)
这肯定适用于具有POSIX shell的系统.
请注意,这不会重写Signed-off-by:提交消息中的任何或类似的行.
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |