如何在bitbucket帐户中更改提交用户名?要改变git,我使用了这个命令
git filter-branch -f --env-filter " GIT_AUTHOR_NAME='newUser' GIT_AUTHOR_EMAIL='newuser@email.com' " HEAD
它只更改本地计算机中的用户名,但不会更改我的bitbucket帐户中的用户名。如何在bitbucket中更改提交的用户名?
答案 0 :(得分:8)
就像Chris所说,重写你的git历史是一种不好的做法。
映射作者的推荐方法是使用.mailmap功能。
使用以下内容在存储库顶层创建.mailmap
文件:
New Name <new.email@example.com> Old Name <old.email@example.com>
这会将git历史记录中的Old Name <old.email@example.com>
替换为New Name <new.email@example.com>
,这些更改也会反映在Github和Bitbucket上。
答案 1 :(得分:4)
与Git一样(几乎)其他所有内容,此命令仅修改本地存储库。就像提交或添加标签一样,您必须推送到BitBucket才能显示更改。
但在你做之前,非常肯定你想要的。
您运行的filter-branch
命令重写了您的历史记录。您的每个提交现在都有一个新哈希。它是considered bad practice to rewrite history that has been shared with others,如果你推送到BitBucket,你就会这样做。
这可能会导致真正的问题,最明显的原因是任何克隆存储库的人现在都会拥有不再反映在存储库中的的历史记录。他们将无法push
和fetch
(或pull
ing}。如果您选择继续前进,最好与所有合作者进行认真,诚实的沟通。
如果您非常非常确定要执行此操作,则必须使用--force-with-lease
选项进行推送,否则BitBucket将拒绝推送。
答案 2 :(得分:1)
git filter-branch
重写您的历史记录。如果您与其他人共享您的存储库,这可能会导致问题,所以要小心!filter-branch
操作的结果推送到远程存储库。由于您已经搞乱了历史提交,因此您可能需要使用git push -f
。 git push
(没有-f
)会注意到您的本地和远程分支机构发生了分歧,这是因为您重写了历史记录。再次,在使用git push -f
之前要小心!答案 3 :(得分:0)
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 git@bitbucket.org
# 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
答案 4 :(得分:0)
要在Git中更改某个特定项目的作者,可以运行:
git config user.name "Author Name"
git config user.email "author@email.com"