[英]Git removing commiter information
我在 github.com 上開始了一些項目。 我正在兩台機器上工作。 我做了這樣的事情:
第二天我在 Machine2 上工作。 我在那里有不同的配置,所以我使用“--author=something”參數進行提交。 完成工作后,我將更改推送到 Machine1。
我將更改從 Machine1 推送到 github。 而且我可以看到在 Machine1 上完成的提交在歷史記錄中提交了正確的 Author 以及來自 Machine1 的提交者提交。 而且我不想公開這個提交者提交的文件。 我怎樣才能刪除它?
我暫時在 Machine1 上做了:
git reset --hard <commit before changes on Machine1>
git push -f github master
但看起來仍然可以獲取提交者信息。 如何永久刪除它。
此致,
亞當
如果您只想更改提交者信息,您可以使用git rebase
來獲取您的提交並在另一個提交之上重放它們。 --no-ff
選項在這里很重要,因為它確保每次提交都會被重新創建。 否則 git 將快進,以防變基成為空操作。
GIT_COMMITTER_NAME=Adam;
GIT_COMMITTER_EMAIL=adam@example.com;
export GIT_COMMITTER_NAME;
export GIT_COMMITTER_EMAIL;
git rebase --no-ff <commit before changes on Machine1>
當您的歷史記錄有點復雜(合並)時,這將很快變得棘手,在這種情況下,使用 filter-branch 可能會更好。
如果您還想更改作者信息,請使用git filter-branch
並使用--env-filter
重寫所有提交。 一定要備份,以防我的命令有缺陷;)——盡管我不希望這樣
git filter-branch --env-filter '
GIT_AUTHOR_NAME=Adam;
GIT_AUTHOR_EMAIL=adam@example.com;
export GIT_AUTHOR_NAME;
export GIT_AUTHOR_EMAIL;
git commit-tree "$@";
' <commit before changes on Machine1>..HEAD
您還可以使用--all
而不是 refspec 來重寫存儲庫中的所有提交
注意:如果您已經共享了您的存儲庫,那么您將不得不在您想要使用它的每台機器上重新克隆它,這是一件壞事。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.