如何更改bitbucket帳戶中的提交用戶名?要在Git中改變我已經使用這個命令如何在bitbucket中更改提交的用戶名?
git filter-branch -f --env-filter " GIT_AUTHOR_NAME='newUser' GIT_AUTHOR_EMAIL='[email protected]' " HEAD
只更改用戶名在本地計算機上,但不是在我的帳戶到位桶。如何更改bitbucket中提交的用戶名?
如何更改bitbucket帳戶中的提交用戶名?要在Git中改變我已經使用這個命令如何在bitbucket中更改提交的用戶名?
git filter-branch -f --env-filter " GIT_AUTHOR_NAME='newUser' GIT_AUTHOR_EMAIL='[email protected]' " HEAD
只更改用戶名在本地計算機上,但不是在我的帳戶到位桶。如何更改bitbucket中提交的用戶名?
和Git一樣(幾乎)其他所有東西,這個命令只會修改你的本地倉庫。就像您提交或添加標籤時一樣,您必須推送到BitBucket才能使更改顯示出來。
但是在你做之前,要確定你想要的。
您運行的filter-branch
命令重寫了您的歷史記錄。您的每個提交現在都有一個新的散列。這是considered bad practice to rewrite history that has been shared with others,如果你推到BitBucket你會這樣做。
這可能會導致真正的問題,最顯然的是因爲任何其他已經克隆存儲庫的人現在的歷史記錄將不再反映在存儲庫中。他們將遇到問題push
ing和fetch
ing(或pull
ing)。如果您選擇繼續前進,最好謹慎並誠實地與您的所有合作者溝通。
如果您是非常非常確定您想要這樣做,您必須使用--force
選項來推送,否則BitBucket會拒絕推送。
git filter-branch
重寫你的歷史。如果您與其他人共享您的存儲庫,這可能會導致問題,所以要小心!filter-branch
操作的結果推送到遠程存儲庫。既然你已經搞砸了歷史提交,你可能需要使用git push -f
。 git push
(沒有-f
)會注意到你的本地和遠程分支已經發生分歧,這是因爲你已經改寫了你的歷史。再次,在使用git push -f
之前要小心!First of all create two different account into bitbucket
User: jonny_ceg1
User: jonny_ceg2
Now into your computer create two ssh keys;
$ ssh-keygen -t rsa -C 「jonny_ceg1/jonny_ceg2″
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
$ ssh-add id_rsa
Now create a file
$ ~/.ssh/config
$ vim ~/.ssh/config # we can use this as editor
Write following code into that file
# Default GitHub user (jonny1)
Host bitbucket.org
HostName bitbucket.org
User jonny_ceg1
IdentityFile /Users/jonny/.ssh/id_rsa
# Client user (jonny2)
Host bitbucket.org
HostName bitbucket.org
User jonny_ceg12
IdentityFile /Users/jonny/.ssh/id_rsa2
by using 「IdentityFile」: IdentityFile comment only a single line to avoid jonny_ceg1/jonny_ceg2 as a user
# An Example
## use account 1
# ssh-add ~/.ssh/id_rsa
## use account 2
# ssh-add ~/.ssh/yysshkey
## Check logged in user
# ssh -v [email protected]
# Default GitHub user (jonny)
Host bitbucket.org
HostName bitbucket.org
User jonny_oct
IdentityFile /Users/name/.ssh/id_rsa
# Client user (name)
Host bitbucket.org
HostName bitbucket.org
User name_last
# IdentityFile /Users/name/.ssh/yysshkey
# Original Git hub
Host github.org
HostName github.org
User ssUsers
ForwardAgent yes
就像Chris說的,重寫你的git歷史是一個糟糕的做法。
映射作者的推薦方法是使用.mailmap功能。
在與下列內容存儲庫的頂層創建.mailmap
文件:
New Name <[email protected]> Old Name <[email protected]>
這將提交歷史與New Name <[email protected]>
取代Old Name <[email protected]>
而這些變化也將反映在Github和到位桶。
請參閱[this](http://stackoverflow.com/a/30373772/1459926)解決方案,以便在不改寫歷史記錄的情況下更改Git中的作者。 –
@AlexandruGuzinschi,很好的解決方案! – Chris