[英]git mimic old commit from other repository
在我們公司,我們開始使用一些開源代碼並開始修補它。 我現在想公開這些更改,所以我想用正確的作者和作者日期應用這些更改(我不想因為我沒有做的工作而受到贊揚)。
company-repo
中,我提交了我想模仿的123456789
new-repo
中,我准備了一個提交(使用git add -p
)。 現在我想創建一個模仿來自company-repo
的提交123456789
的提交,但是在new-repo
中創建這個提交。
git commit -C
可以從另一個提交中獲取 git 提交消息,但這失敗( could not lookup commit
)我不知道是否有更簡單的方法可以做到這一點,但我會解析author 、 message和timestamp並在提交時重用它們。
正確設置這兩個變量:
OLDREPO=/path/to/company-repo
HASH=123456789 # hash of commit to mimic
然后您可以從舊提交中提取值:
DATE=$(git --git-dir=$OLDREPO/.git/ show --no-patch --no-notes --pretty='%cd' $HASH)
AUTHOR=$(git --git-dir=$OLDREPO/.git/ show --no-patch --no-notes --pretty='%an <%ae>' $HASH)
MESSAGE="$(git --git-dir=$OLDREPO/.git/ show --no-patch --no-notes --pretty='%B' $HASH)"
並將它們用於您的新提交:
git commit --author="$AUTHOR" --date="$DATE" -m "$MESSAGE"
注意:我沒有故意設置GIT_COMMITTER_DATE
。 從技術上講,提交是今天創建的,而作者很久以前就編寫了他的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.