4

如何更改 bitbucket 帐户中的提交用户名?要更改 git,我使用了此命令

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

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

4

5 回答 5

9

就像Chris所说,重写你的 git 历史是一种不好的做法。

映射作者的推荐方法是使用.mailmap功能。

.mailmap在存储库的顶层创建一个包含以下内容的文件:

New Name <new.email@example.com> Old Name <old.email@example.com>

这将Old Name <old.email@example.com>在 git 历史记录中替换为New Name <new.email@example.com>,这些更改也将反映在 Github 和 Bitbucket 上。

于 2015-05-21T12:27:02.380 回答
4

与 Git 的(几乎)所有其他内容一样,此命令仅修改您的本地存储库。就像您提交或添加标签时一样,您必须推送到 BitBucket 才能显示更改。

但在你这样做之前,请确定你想要这样做。

filter-branch您运行的命令重写了您的历史。您的每个提交现在都有一个新的哈希值。重写已与他人共享的历史记录被认为是不好的做法,如果您推送到 BitBucket,您就会这样做。

这可能会导致真正的问题,最明显的是因为克隆存储库的任何其他人现在将拥有不再反映存储库中的历史记录。他们会在pushing 和fetching(或pulling)方面遇到麻烦。如果您选择继续前进,最好与您的所有合作者进行认真和诚实的沟通。

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

于 2014-05-02T11:55:54.003 回答
2

同样要在 Git 中更改特定项目的作者,可以运行:

git config user.name "Author Name"
git config user.email "author@email.com"
于 2019-05-28T14:57:42.893 回答
1
  1. git filter-branch改写你的历史。如果您与其他人共享您的存储库,这可能会导致问题,所以要小心!
  2. 确保您已将操作结果推filter-branch送到远程存储库。由于您已经弄乱了历史提交,因此您可能需要使用git push -f它。git push(没有-f)会注意到您的本地和远程分支已经分歧的事实,这是因为您已经重写了历史。再次,使用前要小心git push -f
  3. Bitbucket 和 GitHub 等网站尝试将提交链接到用户,而不是简单地显示提交者的姓名。这是通过将提交者的电子邮件地址与与其用户之一关联的电子邮件地址进行匹配来完成的。如果您希望 Bitbucket 显示指向您的用户个人资料的链接,请确保您已将新电子邮件地址添加到您的帐户。为此,请单击站点右上角的个人资料照片,单击“管理帐户”,然后在左侧边栏中单击“电子邮件地址”。
于 2014-05-02T11:52:45.650 回答
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
于 2014-08-27T07:59:43.877 回答