特定のコミットで作成者/メールを変更する

リキッドコア

Atlassian Sourcetreeを管理ツールとして使用しながら、オンラインリポジトリ(オリジン)と連携するbitbucket上のリポジトリがあります。

20のコミットがあるとしましょう。

Sourcetreeは何らかの理由でプロジェクト設定を変更する楽しみを共有しており、私は誤って2つのコミットをプッシュしました(たとえば、マシンを使用する他の同僚として、コミット15と16を使用します。

私は自分の名前とメールをそれらのコミットに入れたいと思います。

このような木を想像してみましょう(枝なし、マスターだけ)

コミット番号->コメント->コミットID->作成者/メール

[email protected]の誰かが私になるはずです。

私はレポの管理者です。

簡単な方法でそれを行う方法は?Sourcetreeから可能ですか?ターミナルからやるべきですか?

.gitフォルダー内のファイルを手動で変更し、新しいリポジトリを作成してそこでコミットすることは、実行可能な解決策でしょうか?

重複した回答がうまく機能しないことを示唆しているため、質問は重複していません。

編集-あまり多くの研究なしでそれを行う方法を探している人のための正しい手順

誰もがこれを重複としてマークしているのに、そうではないので、他の手順は不完全であり、問題や質問でgitにあまりクールではない誰か(私のような)を残すので、正しい手順は次のとおりです。

SourceTreeから、リポジトリが開いているときに右上にあるターミナルボタンでターミナルを起動します。

次に、これを貼り付けて実行し、ケースに適した置換を使用します

    #!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="[email protected]"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="[email protected]"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

ただし、これにより、セカンダリの「バックアップ」ブランチが生成されます。これは、履歴を書き換えるときに、多くの疑問が残るためです。

「バックアップ」ブランチを削除し、実際に新しい履歴をリポジトリにプッシュして、正しい名前/メールで新しい履歴を見つけるには、この追加の手順を実行する必要がありました。

git push --force --tags origin 'refs/heads/*'

ここに完全なガイドがあります。

私を正しい方向に向けてくれたすべての人に感謝します。

マーク・アデルスバーガー

これを行うための「簡単な」方法はありません。作成者とコミッターの情報はコミットの一部です。それらを変更すると、コミットIDが変更されます。コミットIDを変更すると、後続のコミットの親情報を変更する必要があり、それによってそれらのコミットのIDが変更されます。言い換えれば、それを変更するには、履歴を書き直す必要があります。

履歴の書き換えは特に難しいことではありませんが、影響を受けるコミットがすでに共有されている場合(または、より正確には、影響を受けるコミットの「古い」バージョンがすでに共有されている履歴から削除される場合)、かなりのコストがかかります。ブランチの)。

このような書き直しを行うには、すでに「古い」コミットを受け取っている他のすべての人と調整する必要があります。レポを持っている人が多いので、これは負担が大きすぎるとよく言われます。その場合、書き換えを行う余裕はありません。そのアドバイスを無視すると、おそらく他の誰かが受け取ったエラーを「修正」しようとすると、書き換えが取り消され、さらに大きく調整されるまで誰にもほとんど役に立たない真に分裂したリポジトリができあがります。それをクリーンアップするための努力が完了しました。

それでも、いくつかのコミットの電子メールアドレスをクリーンアップするためだけに履歴の書き換えを行いたい場合git filter-branchは、--env-filterオプションを使用しチェックアウトしてください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

プッシュ後に特定のブランチで過去のコミットの作成者と電子メールを変更する

分類Dev

最後のコミットを変更せずに、指定されたコミットで作成者と電子メールを変更する方法

分類Dev

コミッターの作成者名を変更する

分類Dev

1つの特定のコミットのコミット作成者を変更するにはどうすればよいですか?

分類Dev

Gitで複数のコミットの作成者とコミッターの名前と電子メールを変更するにはどうすればよいですか?

分類Dev

特定のコミットのコミットメッセージを変更する

分類Dev

Gitでいくつかのコミットを修正して作成者を変更する方法

分類Dev

コミットする*前*に、特定のコミットの名前、電子メール、日付を変更する

分類Dev

gitで特定の変更をコミットする方法

分類Dev

Kafkaの消費者が特定のメッセージをコミットする方法が必要です

分類Dev

別のコミットからコミットメタデータ(作成者、日付)をコピーする方法

分類Dev

TortoiseHgで特定のファイルを変更するすべてのコミットを検索します

分類Dev

gitが特定のローカル変更のセットをコミットしないようにする方法

分類Dev

特定のコミットからファイルの変更を削除する方法

分類Dev

Bitbucketは最後のコミット作成者名を変更する必要があります

分類Dev

Python3.3で.mp3メタデータのタイトルと作成者を変更する

分類Dev

特定のブランチのコミットを作成者の情報(電子メール、日付など)にリセットします。

分類Dev

以前のコミットで行われた変更から新しいコミットを作成する

分類Dev

特定の作成者(複数)によるコミットを取得する

分類Dev

GitHubでコミットメッセージの名前を変更します

分類Dev

パッチセットの作成後にgerritのコミットメッセージを変更しますか?

分類Dev

Microsoft Word2016へのコメントの特定の作成者名を変更または設定するにはどうすればよいですか

分類Dev

IntelliJ:標準のコミットメッセージを変更する

分類Dev

Gitの古いコミットメッセージを変更する

分類Dev

コミットごとにメールアドレスを変更する

分類Dev

slickgridのコードからセルの変更をコミットする方法

分類Dev

特定のコミットメッセージでのみtravisCIビルドをトリガーする

分類Dev

特定のファイルへの変更を個別のコミットとして分離するGitコミットポリシー

分類Dev

gitの過去のコミットに関連付けられたメールを変更する

Related 関連記事

  1. 1

    プッシュ後に特定のブランチで過去のコミットの作成者と電子メールを変更する

  2. 2

    最後のコミットを変更せずに、指定されたコミットで作成者と電子メールを変更する方法

  3. 3

    コミッターの作成者名を変更する

  4. 4

    1つの特定のコミットのコミット作成者を変更するにはどうすればよいですか?

  5. 5

    Gitで複数のコミットの作成者とコミッターの名前と電子メールを変更するにはどうすればよいですか?

  6. 6

    特定のコミットのコミットメッセージを変更する

  7. 7

    Gitでいくつかのコミットを修正して作成者を変更する方法

  8. 8

    コミットする*前*に、特定のコミットの名前、電子メール、日付を変更する

  9. 9

    gitで特定の変更をコミットする方法

  10. 10

    Kafkaの消費者が特定のメッセージをコミットする方法が必要です

  11. 11

    別のコミットからコミットメタデータ(作成者、日付)をコピーする方法

  12. 12

    TortoiseHgで特定のファイルを変更するすべてのコミットを検索します

  13. 13

    gitが特定のローカル変更のセットをコミットしないようにする方法

  14. 14

    特定のコミットからファイルの変更を削除する方法

  15. 15

    Bitbucketは最後のコミット作成者名を変更する必要があります

  16. 16

    Python3.3で.mp3メタデータのタイトルと作成者を変更する

  17. 17

    特定のブランチのコミットを作成者の情報(電子メール、日付など)にリセットします。

  18. 18

    以前のコミットで行われた変更から新しいコミットを作成する

  19. 19

    特定の作成者(複数)によるコミットを取得する

  20. 20

    GitHubでコミットメッセージの名前を変更します

  21. 21

    パッチセットの作成後にgerritのコミットメッセージを変更しますか?

  22. 22

    Microsoft Word2016へのコメントの特定の作成者名を変更または設定するにはどうすればよいですか

  23. 23

    IntelliJ:標準のコミットメッセージを変更する

  24. 24

    Gitの古いコミットメッセージを変更する

  25. 25

    コミットごとにメールアドレスを変更する

  26. 26

    slickgridのコードからセルの変更をコミットする方法

  27. 27

    特定のコミットメッセージでのみtravisCIビルドをトリガーする

  28. 28

    特定のファイルへの変更を個別のコミットとして分離するGitコミットポリシー

  29. 29

    gitの過去のコミットに関連付けられたメールを変更する

ホットタグ

アーカイブ