Git:前のコミットを変更してプッシュします。 [閉じる]

Git:前のコミットを変更してプッシュします。 [閉じる]

リポジトリをレビューしていますが、いくつかのコメントを提示したいと思います。これにより、コメントの追加、一部の変更など、より多くのコンテンツが追加されます。

以前にコミットされたファイルの内容を変更してプッシュする方法、コミット履歴が変更され、影響を受けたすべてのファイルが変更されることを知っていますが、gitは影響を受けたファイルを追加のコミット(-->マスター)と比較し、肯定的な変更を実装しますか?

ベストアンサー1

あなたが求めるのは歴史を書き換えることですN提出物が0個あります。これは通常、リモートリポジトリに基づく他のリポジトリと同期しないようにするため、悪い考えです。これにより、他の人がマージできなくなるほど状況が複雑になり、別のリポジトリからそのブランチを削除し、新しく変更されたブランチを引き出す必要があります。この場合、新しいブランチを起動してここにコメントを追加することもできます。いずれにせよ、これは少し混乱するでしょう。

これを行うには、マージを確認して(たとえば、コミットやを使用A)、そのブランチに戻り(このブランチを呼び出す)BCAレビュー、オリジナルもそうです。フルリクエスト):

...A --B --C    (pull-request)
    \
     A'         (review)

git checkout HEAD{3}
git checkout -b review

その後、コメントを編集してチェックインします。

git add . # or specify the specific files 
git commit -m "message" --author="original author"

または、同じメッセージ/作成者が欲しいが入力したくない場合は、次のコマンドを使用できます。このコマンドはスクリプトまたはエイリアスのgitコマンドに入れます。

git add $(git diff-tree --no-commit-id --name-only -r <sha-of-A>)
git commit -m "$(git rev-list --format=%B <sha-of-a>)" --author="$(git rev-list --format=%an <sha-of-A>)"

適切な親から適切なSHAを検索して自動的に実行することもできますが、四半期の親とマージの親atmを区別する方法がわかりません。

次にBマージレビュー

git merge <sha-of-B>

その後、コメントを編集してチェックインします。 (上記参照)。

完了するまでこの作業を続けます。

...A --B --C    (pull-request)
    \   \   \
     A'--B'--C' (review)

その後、必要に応じて元のブランチに再マージするか、そのレビューブランチをレビューしている人に返すことができます。

おすすめ記事