4

bitbucket アカウントで commit ユーザー名を変更するには? 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 history で置き換えられNew Name <new.email@example.com>、これらの変更は Github と Bitbucket にも反映されます。

于 2015-05-21T12:27:02.380 に答える
4

(ほぼ) Git の他のすべてと同様に、このコマンドはローカル リポジトリのみを変更します。タグをコミットまたは追加するときと同様に、変更を表示するには BitBucket にプッシュする必要があります。

ただし、実行する前に、実行したいことを十分に確認してください。

実行したfilter-branchコマンドにより、履歴が書き換えられました。各コミットには新しいハッシュがあります。他のユーザーと共有されている履歴を書き換えることは悪い習慣と見なされており、BitBucket にプッシュすると、それを行うことになります。

これにより、実際の問題が発生する可能性があります。これは、リポジトリを複製した他のユーザーの履歴がリポジトリに反映されなくなるためです。彼らは苦労pushするfetchでしょうpull。先に進むことを選択した場合は、すべての協力者と慎重かつ正直にコミュニケーションをとることが最善です.

これを行いたいと確信--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 -fgit push(なし-f) を使用すると、ローカル ブランチとリモート ブランチが分岐したことがわかります。これは、履歴を書き換えたことが原因です。繰り返しますが、使用する前に注意してくださいgit push -f
  3. Bitbucket や GitHub などのサイトは、単にコミッターの名前を表示するのではなく、コミットをユーザーにリンクしようとします。これは、コミッターの電子メール アドレスを、そのユーザーの 1 人に関連付けられている電子メール アドレスと照合することによって行われます。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 に答える