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

推薦する

NodeJS は画像テキスト分割を実現します

この記事では、画像テキストセグメンテーションを実装するためのNodeJSの具体的なコードを参考までに...

モバイルデバイス Web 開発における HTML ヘッドの書き方

コードをコピーコードは次のとおりです。 <ヘッド> <meta http-equi...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

uniapp アプレットでウォーターフォール フロー レイアウトを実装するためのアイデアとコード

1. はじめに今、ウォーターフォールフローについて書くことは、古い内容の焼き直しと見なされますか?気...

Windows 64 ビットに MySQL を再インストールするチュートリアル (Zip バージョン、解凍バージョンの MySQL インストール)

MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...

Vue-cliに基づくコードセットは複数のプロジェクトをサポートします

目次アプリケーションシナリオアイデアプロジェクト構造全体的なプロジェクト構造webpack パッケー...

Vue ページレンダリングにおけるキーの適用例チュートリアル

導入フロントエンドプロジェクトの開発プロセスでは、el-table によって表示される結果列がコンポ...

jQueryはドロップダウンメニューのスライド効果を実現します

Web ページを作成するときに、クールでスムーズなドロップダウン メニューが必要になることがあります...

MySQL の自動増分主キーが使い果たされた場合の対処方法

面接では、次のようなシナリオを経験する必要があります。インタビュアー: 「MySQL を使用したこと...

MySQL で 2 つのテーブルをクエリする場合の from と join の違いの概要

序文MySQL では、複数テーブル結合クエリは非常に一般的な要件です。複数テーブルクエリを使用する場...

CSS 属性値正規マッチングセレクターの使い方 (ヒント)

属性値の正規一致セレクターには 3 つの種類があります。 [属性^="値"] [...

Linux/CentOS サーバー セキュリティ構成の一般ガイド

Linux はオープン システムです。インターネット上には、既成のプログラムやツールが多数存在します...

MySql のスロークエリ分析とスロークエリログの開き方の詳細説明

最近はMySQLのパフォーマンス最適化についても研究しているので、今日の投稿は勉強ノートとしても使え...

TypeScript の関数

目次1. 関数の定義1.1 JavaScript の関数1.2 TypeScriptの関数2. オプ...

コードレイン効果を実現するJavaScriptキャンバス

この記事では、コードレイン効果を実現するためのキャンバスの具体的なコードを参考までに共有します。具体...