對于 git 的用戶名與郵箱诬辈,我們大多數(shù)人都有兩套颓哮,一套公司賬戶平時工作用和一套個人賬戶用于業(yè)余項目常摧。而我們又常常在 commit 以后才發(fā)現(xiàn)用戶名與郵箱設(shè)置錯了磕洪。本文總結(jié)了如何修改 Commit 的用戶名與郵箱吭练。
如何設(shè)置用戶名與郵箱
$ git config user.name "Author Name"
$ git config user.email email@address.com
上面的命令只會修改當(dāng)前項目的配置。如果需要也可以增加 --global 選項來修改當(dāng)前系統(tǒng)用戶的默認(rèn)配置析显。
修改 Commit 的用戶名與郵箱
注意: 只建議修改未 push 的 commit鲫咽。
因為修改 Commit 的用戶名或郵箱會生成一個新的 commit 來替換之前的 commit 。如果在修改之前已經(jīng) push 到了遠(yuǎn)端谷异,修改后再次 push 會出現(xiàn)沖突分尸。 只能使用 push -f。 如果其他人已經(jīng)拉任铩( pull )了舊 commit 會出現(xiàn)很多麻煩寓落。
只修改最新的 commit
如果你只需要修改最新的 commit 括丁,直接使用:
$ git commit --amend --author="Author Name <email@address.com>"
如果你已經(jīng)修改了 git config 中的用戶名和郵箱荞下,也可以使用(推薦)
$ git commit --amend --reset-author --no-edit
如果要修改連續(xù)多個 commit
比如,你的 commit 歷史為 A-B-C-D-E-F 史飞, F 為 HEAD 尖昏, 你打算修改 C 和 D 的用戶名或郵箱,你需要:
- 運(yùn)行
git rebase -i B
(這里有一個運(yùn)行該命令后的例子)如果你需要修改 A 构资,可以運(yùn)行git rebase -i --root
- 把 C 和 D 兩個 commit 的那一行的 pick 改為 edit
- 當(dāng) rebase 開始后抽诉,將會暫停在 commit C
- 運(yùn)行
$ git commit --amend --author="Author Name <email@address.com>"
- 然后運(yùn)行
git rebase --continue
- 將會繼續(xù)暫停在 commit D
- 再次運(yùn)行
$ git commit --amend --author="Author Name <email@address.com>"
git rebase --continue
- rebase 結(jié)束
- 如果需要更新到遠(yuǎn)程倉庫, 使用
git push -f
(請確保修改的commit 不會影響其他人)
作者:sjfkai
來源:稀土掘金
著作權(quán)歸作者所有吐绵。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)迹淌,非商業(yè)轉(zhuǎn)載請注明出處。
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布己单!