Gitコミットログの変更方法のまとめ

Gitコミットログの変更方法のまとめ

ケース1: 最後の提出とプッシュなし

次のコマンドを実行します。

git コミット --amend

git は $EDITOR エディタを開き、この送信のログを読み込んで編集できるようにします。編集後、保存して変更を完了します。

ケース2: 最後に送信され、サーバーにプッシュされる

次のコマンドを実行します。

git コミット --amend
git プッシュオリジンマスター --force

状況1と同じです。 push を使用してリモート サーバーにプッシュする場合は、サーバーが履歴を更新できるように --force を追加する必要があります。

変更されたログを強制的に Git サーバーにプッシュすると、他のユーザーが変更を加えた場合にローカル コピーが同期されなくなる可能性があるので、変更したユーザーに確認することをお勧めします。

ケース3: 古いコミットでプッシュされていない

コミットが最後から 3 番目のコミットであると仮定すると、これは git log を使用して表示できます。

$ git ログ
コミット b1b451d218cc23b6c769f373164f2b89cf54d0aa
著者: clcaza <[email protected]>
日付: 土 3月 10日 19:09:08 2018 +0800

コンテンツを追加

コミット 04f0d1809d5d31cc6e930efcba47a5f3f7e93319
著者: clcaza <[email protected]>
日付: 2018 年 3 月 10 日土曜日 19:08:24 +0800

コンテンツを追加

コミット 94fc8feb916442d56b558d5c370f18f057298921
著者: clcaza <[email protected]>
日付: 土 3月 10日 19:07:08 2018 +0800

コンテンツを追加

コミット fd517efa9faf6a5ec71d0eac38fbcfa0cd689f40
著者: clcaza <[email protected]>
日付: 2018 年 3 月 10 日土曜日 19:06:21 +0800

初期化

リベースを実行する

git リベース -i HEAD~3

次のように、最後の 3 つのコミットを表示するエディターが開きます。

94fc8fe を選択してコンテンツを追加
04f0d18 コンテンツを追加 cを選択
b1b451d を選択 コンテンツを追加

コミットの順序で表示されることがわかります。これは、git log が表示する順序とは逆になります。ログを編集する行を見つけて、選択を編集に変更し、保存します。

次はログの内容を変更します

git コミット --amend

ログの編集が完了したら、必ず以下を実行してください。

git リベース --continue

リベースの目的は、コミットの履歴を開いて、何を変更するかを選択できるようにすることです。 Git を使用すると、新しいブランチのコンテンツを変更できます。 git rebase --continue を使用すると、前のブランチに戻ることができます。

ケース4: 古い送信でサーバーにプッシュされている

ログを編集する前の操作はケース 3 と同じです。

git リベース -i HEAD~X
git コミット --amend
git リベース --continue

X は最後の提出を示します。

ログの編集が完了したら、push を実行します。

git プッシュオリジンマスター --force

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • ウィンドウは、定期的にgit更新(git pull)を実行し、実行中のcmdを非表示にするタスクプランを設定します。
  • git logは特定の条件に従ってログを照会し、変更されたコード行の数をカウントします。
  • IdeaでGitを使用するプロセス
  • idea git で複数のブランチを切り替えた後に Maven が有効にならない問題を解決する
  • Git commit --amend 送信情報の変更操作

<<:  Datagrip2020 が MySQL ドライバーのダウンロードに失敗する

>>:  MySQLデータベーストリガーの詳細な説明

推薦する

CSS3 クリアフロートメソッドの例

1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...

Linux サーバーのクイックアンインストールとノード環境のインストール (簡単に始められます)

1.まずnpmをアンインストールする sudo npm アンインストール npm -g 2. ノー...

MySQL トランザクション分離レベルの表示と変更の例

トランザクション分離レベルを確認するMySQL では、'%tx_isolation%'...

さまざまな MySQL テーブルソートルールのエラーの分析

MySQL が複数のテーブルを結合するときに、次のエラーが報告されます: [Err]1267 – 操...

訪問者にあなたのウェブサイトを覚えてもらうための3つの便利なコード

訪問者があなたのウェブサイトを覚えておくのに役立つ3つの便利なコード。お気に入りに追加するためのヒン...

Linux inotifyリアルタイムバックアップの実装方法の詳細説明

リアルタイム レプリケーションは、企業データをバックアップする最も重要な方法です。主に、ユーザーが送...

JavaScript のアンチシェイクとスロットリングの違いと実装

目次1. 手ぶれ補正2. スロットリング3. まとめ序文:フロントエンド開発者には、次の 2 つの要...

MySQL インデックスのカーディナリティの概念と使用例

この記事では、例を使用して、MySQL インデックス カーディナリティの概念と使用方法を説明します。...

Linux で jar パッケージを起動してバックグラウンドで実行する方法

jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

CSS (カスケーディング スタイル シート) の一般的な用語の概要

CSS を使用する場合は、DOCTYPE (ドキュメント タイプ定義) を記述することを忘れないでく...

openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)

目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...

Linux スワップ パーティション (詳細説明)

目次リナックス1. SWAPとは2. swappiness は何を調節しますか? 3. スワップ操作...

jQuery ツリービュー ツリー構造アプリケーション

この記事では、jQueryツリービューツリー構造のアプリケーションコードを例として紹介します。具体的...

Dockerで作成したコンテナを削除する方法

Dockerで作成したコンテナを削除する方法1. まず、docker -s -aコマンドを使用してす...