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

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

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

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

git コミット --amend

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

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

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

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

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

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

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

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

$ git ログ
コミット b1b451d218cc23b6c769f373164f2b89cf54d0aa
著者: clcaza <clcaza@sina.cn>
日付: 土 3月 10日 19:09:08 2018 +0800

コンテンツを追加

コミット 04f0d1809d5d31cc6e930efcba47a5f3f7e93319
著者: clcaza <clcaza@sina.cn>
日付: 2018 年 3 月 10 日土曜日 19:08:24 +0800

コンテンツを追加

コミット 94fc8feb916442d56b558d5c370f18f057298921
著者: clcaza <clcaza@sina.cn>
日付: 土 3月 10日 19:07:08 2018 +0800

コンテンツを追加

コミット fd517efa9faf6a5ec71d0eac38fbcfa0cd689f40
著者: clcaza <clcaza@sina.cn>
日付: 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データベーストリガーの詳細な説明

推薦する

Dockerfileを使用してDockerイメージを構築する

目次Dockerfileを使用してDockerイメージを構築する1. Dockerfile とは何で...

Vue+Element+Springboot画像アップロードの実装例

最近、たまたま vue+springboot のフロントエンドとバックエンドの分離プロジェクトに触れ...

ユーザーはその理由を知る必要がある

証券会社にいた頃、設計業務が忙しくなかったため、商品のマニュアルを書く役割を担ったことがありました。...

Linuxでのcrontabの使い方と注意点の詳しい説明

Crontab は定期的な実行を設定するために使用されるコマンドです。そのデーモン プロセスは cr...

将来人気が出るであろういくつかのナビゲーション方向

<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...

js を使用して年カルーセル選択効果をネイティブに実装する例

序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...

Node.js コンソールで強調表示されたコードを印刷する方法

序文コードを実行してエラーが発生すると、エラーが出力されます。エラーにはスタック情報が含まれており、...

同じ IP のアクセス頻度を制限するように nginx を設定する方法

1. nginx.conf の http{} に次のコードを追加します。 limit_conn_zo...

プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

序文CSS グリッドは通常、さまざまなフレームワークにバンドルされていますが、実際のビジネス ニーズ...

カタツムリ映画システムのDocker展開の詳細なプロセス分析

環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....

テーブルの追加と削除の操作を実装する js

この記事の例では、テーブルを追加および削除するためのjsの具体的なコードを参考までに共有しています。...

Linux システムで .sh ファイルを実行する方法

Linux システムで .sh ファイルを実行する方法は 2 つあります。たとえば、ルート ディレク...

高品質なウェブページのデザイン方法 高品質なウェブページ(画像とテキスト)のデザイン経験

オープンプラットフォームの増加に伴い、そこから派生するさまざまなアプリケーションサービスも増加傾向に...

判定条件を使用してCSSファイルをインポートする

解決策 1: HEAD に次のコードを挿入するなど、HTML ドキュメントで条件付きインポートを使用...

MySQL 5.6 のインストール手順(画像とテキスト付き)

MySQL はオープンソースの小規模リレーショナル データベース管理システムです。現在、MySQL...