git revert + git rebase 一度に複数のコミット_本然233的博客程式员息信网_git revert Multiple
1.
git log
の現在の状態を表示します。
私の現在の状態は、最初のコミット+3つのコミットの合計4つのコミットを持っていることがわかります。ここで
git revert
を使用してこれらの3つのコミットをロールバックします。
git revert
は1つの新しいコミットで前のコミットを戻すので、3回戻すと3つの新しいコミットができますが、その後、新しいコミットを1つだけ追加したいので、探し続けてください。
2.
git revert
3つのコミットを順番に巻き戻す
3 つのフォールバックを実行した後、3 つの新しいコミットが追加されたことがわかります。そして、これら 3 つのコミットをひとつにマージしたいと思います。
3.
git rebase
複数のコミットをマージする
直近の3つのコミットをマージしたいので、まず以下のコマンドが必要です。
引数-iはマージする必要のないコミットのハッシュ値で、この場合は現在から4つ前のコミットで、viで編集モードに入ります。
2つの部分に分かれていることがわかります。上部のコメントされていない部分が実行するコマンドで、下部のコメントされている部分がコマンドのプロンプトの説明です。コマンド部分は、前面にコマンド名、コミットハッシュ、コミットメッセージで構成されています。
現在、私たちが知っておくべきコマンドは pick と squash の2つだけです。
-
pick は、このコミットを実行することを意味します
-
squash は、このコミットが前のコミットにマージされることを意味します。
9ee35f2 と 5eb5678 のコミットの前のコマンドを squash または s に変更し、:wq と入力して保存し、終了します。
この時点で、コミットメッセージの編集画面が表示されます。
コメント以外の部分は3つのコミットメッセージで、この3つを新しいコミットメッセージに変更すればよいのです。
wq と入力して保存して起動し、もう一度 git log と入力してコミット履歴を確認すると、3 つのコミットがマージされていることがわかると思います。
そして、プッシュすれば完了です〜。
参考にしてください。
複数のコミットをマージする
Git: スクワッシュ時の空白の許容
関連
-
[解決済み] git commit error: pathspec 'commit' did not match any file(s) known to git
-
[解決済み] key_load_public: ファイルが存在しても、そのようなファイルやディレクトリはありません
-
[解決済み] 作業ディレクトリの git ls-tree 出力?
-
[解決済み] git リポジトリの命名規則はありますか?
-
[解決済み] herokuコードのデプロイ時にパーミッションが拒否される(publickey) fatal: リモートエンドが予期せずハングアップする
-
[解決済み] git rebase --continue 変更なし
-
モジュールのビルドに失敗しました。Error: Cannot find module 'node-sass' (モジュール 'node-sass')。
-
[git]ssh: ホスト名 github.com を解決できませんでした: nodename も servname も提供されていないか、知られていません。
-
を使用すると、ホストの信頼性を確立できないことがあります。
-
Git 現在のブランチにはトラッキング情報がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Git Push Error: リポジトリデータベースにオブジェクトを追加する権限が不足しています。
-
[解決済み] Git でローカルブランチをリモートブランチに完全に置き換えるには?
-
[解決済み] git rm - fatal: pathspec did not match any files.
-
[解決済み] 多くのリポジトリがある場合、SourceTreeは非常に遅くなります。
-
[解決済み] git push" でリモートファイルを強制的に上書きする
-
[解決済み] fatal: 'gh-pages' という名前のブランチは既に存在しています。
-
[解決済み] git commit で "fatal: CRLF would be replaced by LF in" という致命的なエラーが発生する。
-
[解決済み] ステージングされた変更のみをgitに保存する - それは可能ですか?
-
[git] fatal: この操作は作業ツリーで実行する必要があります。
-
Git Please tell me who you are