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データベーストリガーの詳細な説明

推薦する

Vue データ内のプロパティをランダムに変更すると、ビューは更新されますか?

インタビュアー: Vue のソースコードを読んだことはありますか?応募者:あります。インタビュアー:...

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

CSSカスケーディングメカニズムについての簡単な説明

CSS にカスケード メカニズムがあるのはなぜですか? CSS では、同じ要素の特定のプロパティに同...

Vueの最初のプログラムを書くための勉強ノート

目次1. HTMLを書く、最初のVueプログラムビューテンプレートとデータに注意してください決定ルー...

Vue echarts は水平棒グラフを実現します

この記事では、水平棒グラフを実現するためのvue echartsの具体的なコードを参考までに共有しま...

HTML チュートリアル: 順序なしリスト

<br />原文: http://andymao.com/andy/post/102.h...

Winows Server 2019 アクティベーション コードとボリューム ライセンス エディション KMS インストール キー GVLK

最近、社内文書の整理とファイルサーバーの構成を予定しています。以前はサーバー2003を使い慣れていま...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...

MySQL InnoDB ロック メカニズムの詳細な例

1. InnoDBのロック機構InnoDB ストレージ エンジンは、行レベルのロックとトランザクショ...

jsはテーブルドラッグオプションを実装します

この記事の例では、テーブルドラッグオプションを実装するためのjsの具体的なコードを参考までに共有して...

MySQL 5.5.27 winx64 のインストールと設定方法のグラフィックチュートリアル

1. インストールパッケージMYSQLサービスダウンロードアドレス:MySQL公式サイトからダウンロ...

Nginxの書き換えモジュールの詳細な説明

書き換えモジュールは ngx_http_rewrite_module モジュールです。その主な機能は...

一般的な Linux の問題に対する解決策の概要

1. VMwareでCentos7を接続し、固定IPを設定する1) まず、仮想イメージ名を右クリック...

jsを使用してシンプルなカルーセル効果を実現する

この記事では、シンプルなカルーセル効果を実現するためのjsの具体的なコードを参考までに紹介します。具...

よく使われるCSSカプセル化方法の概要

1. pc-reset PCスタイルの初期化 /* 正規化.css */ html{ 行の高さ: 1...