如何在bitbucket中更改提交的用户名?

时间:2014-05-02 11:38:49

标签: git git-svn bitbucket bitbucket-api

如何在bitbucket帐户中更改提交用户名?要改变git,我使用了这个命令

 git filter-branch -f --env-filter " GIT_AUTHOR_NAME='newUser' GIT_AUTHOR_EMAIL='newuser@email.com' " HEAD

它只更改本地计算机中的用户名,但不会更改我的bitbucket帐户中的用户名。如何在bitbucket中更改提交的用户名?

5 个答案:

答案 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,你就会这样做。

这可能会导致真正的问题,最明显的原因是任何克隆存储库的人现在都会拥有不再反映在存储库中的的历史记录。他们将无法pushfetch(或pull ing}。如果您选择继续前进,最好与所有合作者进行认真,诚实的沟通。

如果您非常非常确定要执行此操作,则必须使用--force-with-lease选项进行推送,否则BitBucket将拒绝推送。

答案 2 :(得分:1)

  1. git filter-branch重写您的历史记录。如果您与其他人共享您的存储库,这可能会导致问题,所以要小心!
  2. 确保已将filter-branch操作的结果推送到远程存储库。由于您已经搞乱了历史提交,因此您可能需要使用git push -fgit push(没有-f)会注意到您的本地和远程分支机构发生了分歧,这是因为您重写了历史记录。再次,在使用git push -f之前要小心!
  3. Bitbucket和GitHub等网站尝试将提交链接到用户,而不是简单地显示提交者的名称。这是通过将提交者的电子邮件地址与与其中一个用户相关联的电子邮件地址进行匹配来完成的。如果您希望Bitbucket显示指向您的用户个人资料的链接,请确保您已将新的电子邮件地址添加到您的帐户。为此,请点击网站右上角的个人资料照片,点击“管理帐户”,然后在左侧边栏中点击“电子邮件地址”。

答案 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"