GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_AUTHOR_DATE
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL
GIT_COMMITTER_DATE
這些變量可以被用來僞造的姓名,電子郵件,作者和提交者對git commit
日期。
例如:GIT_AUTHOR_NAME="foo" GIT_AUTHOR_EMAIL="[email protected]" git commit -m 'blah'
git cherry-pick
或git rebase
保持同一作者,但更改提交者的混帳配置當前user.name和user.email。
如果您將使用櫻桃挑選並重寫一些代碼,以下是可能的方法。
比方說old-branch
是A-B-C。
git init newbranch
cd newbranch
git init
git remote add origin /foo/bar/.git
git fetch origin old-branch
git checkout --orphan new-branch A
#make some extra changes
git add .
GIT_AUTHOR_NAME=$(git log -1 --pretty=%an A) GIT_AUTHOR_EMAIL=$(git log -1 --pretty=%ae A) GIT_COMMITTER_NAME=$(git log -1 --pretty=%cn A) GIT_COMMITTER_EMAIL=$(git log -1 --pretty=%ce A) git commit -m $(git log -1 --pretty=%B A)
git cherry-pick -n B
#make some extra changes
git add .
GIT_AUTHOR_NAME=$(git log -1 --pretty=%an B) GIT_AUTHOR_EMAIL=$(git log -1 --pretty=%ae B) GIT_COMMITTER_NAME=$(git log -1 --pretty=%cn B) GIT_COMMITTER_EMAIL=$(git log -1 --pretty=%ce B) git commit -m $(git log -1 --pretty=%B B)
#make some extra changes
git add .
git cherry-pick -n C
GIT_AUTHOR_NAME=$(git log -1 --pretty=%an C) GIT_AUTHOR_EMAIL=$(git log -1 --pretty=%ae C) GIT_COMMITTER_NAME=$(git log -1 --pretty=%cn C) GIT_COMMITTER_EMAIL=$(git log -1 --pretty=%ce C) git commit -m $(git log -1 --pretty=%B C)
現在我們得到美化new-branch
。