目次
インタラクティブなリベースを開始します
どちらがしゃがむかを選択します
コミットメッセージの編集
リベース中の競合の処理
ホームページ 開発ツール Git インタラクティブなリベース中にスカッシュコミットをするにはどうすればよいですか?

インタラクティブなリベース中にスカッシュコミットをするにはどうすればよいですか?

Jul 10, 2025 am 11:32 AM
rebase

GITコミット履歴で複数のコミットを圧縮するには、インタラクティブリベース(Git Rebase -I)、1。GitRebase-Iヘッドを実行して、変更する最後のnコミットを選択します。 2。編集者に統合される必要があるコミットの前に、スカッシュまたはSを統合する必要があります。 3.保存後、新しいエディターインターフェイスを入力して、コミット情報をマージまたは変更します。 4.競合がある場合は、git addとgit rebaseを実行します - 手動で解決した後も続けます。 5.エラーがある場合は、いつでも中止できます。確認に効果がなく、コミット順序と競合を処理しない限り、共有支店に押し込まれたコミットを圧縮することを避けるように注意してください。

インタラクティブなリベース中にスカッシュコミットをするにはどうすればよいですか?

GITを使用してコミット履歴をクリーンアップしたい場合、インタラクティブなレベース中のスカッシュコミットは、最も一般的で有用なテクニックの1つです。主なアイデアは、複数のコミットを1つに組み合わせて、歴史をよりクリーンで読みやすくすることです。

インタラクティブなリベースを開始します

まず、どこまで行きたいかを決定する必要があります。最後の4つのコミットを編集したいとしましょう。実行します。

 git rebase -i head〜4

これにより、最後の4つのコミットを示すエディターが開き、それぞれがpickで接頭辞が付けられています。リストは最も古いものから最新になるので、リストのトップのコミットは最も早いものです。

あなたはあなたの編集者にこのようなものを見るでしょう:

 ABC1234を選択しますa
def5678機能aを修正します
ghi9012依存関係を選択します
JKL2345マイナーなクリーンアップを選択します

これで、どのコミットを押しつぶしているかを選択できます。コミットを前のコミットと組み合わせるには、 pickそのラインのsquash (またはs )に置き換えます。

どちらがしゃがむかを選択します

一般的なルールは次のとおりです。

  • 最初のコミットをpickてください
  • squashまたはsを使用してください。

例えば:

 ABC1234を選択しますa
スカッシュDEF5678機能a
スカッシュGHI9012依存関係を更新します
JKL2345マイナーなクリーンアップを選択します

この場合、最初の2つのコミットは1つに統合され、最後のコミットは別々のままです。

留意すべきいくつかのこと:

  • 他の誰もそれらを使用していないと確信していない限り、すでに共有ブランチに押し込まれているコミットをスカッシュしないでください。
  • あなたが何をしているのかわからない限り、コミットを並べ替えないように注意してください。それは紛争につながる可能性があります。
  • 2番目のコミットからコミットメッセージを破棄する場合は、 squashの代わりにfixupを使用することもできます。

編集者を保存して閉じると、GITはCombined Commitのメッセージを編集するように求められます。

コミットメッセージの編集

どのコミットをスカッシュするかを選択した後、Gitは別のエディターウィンドウを開き、そこで新しいコミットメッセージを書くことができます。デフォルトでは、すべての押しつぶされたコミットからのメッセージが含まれます。

あなたはできる:

  • すべてを維持します
  • いくつかの行を削除して、クリーナーにします
  • まったく新しいメッセージを書いてください

編集が完了したら、ファイルを保存して閉じます。 Gitはそれに応じて歴史を書き直します。

このプロセス中に間違いを犯した場合は、パニックに陥らないでください。いつでもリベースを中止できます。

 Git Rebase-アボート

リベース中の競合の処理

特に同じファイルに触れる変更全体で押しつぶすと、競合に遭遇する場合があります。 Gitはレベースを一時停止し、それらを解決できます。

これが何をすべきか:

  • 競合するファイルを開き、競合マーカーを探します( 、 <code>=======
  • 競合を解決するためにファイルを編集します
  • 解決したファイルごとにgit add <filename></filename>
  • git rebase --continueでリベースを続けます

競合を解決する方法がわからない場合は、 git statusで現在のステータスを常に確認できます。

覚えておいてください。一歩先を通過してから、リフェログをやり取りしたり使用したりせずに、リベースの以前のステップに戻ることはできません。

基本的にそれだけです。インタラクティブなリベース中の不行なコミットは複雑ではありませんが、特に共有歴史や複雑な対立に対処する場合は、少し注意が必要です。

以上がインタラクティブなリベース中にスカッシュコミットをするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

gitリポジトリのコミット履歴を表示するにはどうすればよいですか? gitリポジトリのコミット履歴を表示するにはどうすればよいですか? Jul 13, 2025 am 12:07 AM

gitコミット履歴を表示するには、gitlogコマンドを使用します。 1.基本的な使用法はgitlogであり、提出ハッシュ、著者、日付、提出情報を表示できます。 2。Gitlog--Onelineを使用して簡潔なビューを取得します。 3.著者または提出情報によるフィルター-author and -grep; 4。コードの変更を表示するには-pを追加します。 5。ブランチの履歴を表示するか、すべてを使用するか、gitkrakenやvscodeなどの視覚化ツールを使用します。

gitブランチを削除するにはどうすればよいですか? gitブランチを削除するにはどうすればよいですか? Jul 13, 2025 am 12:02 AM

GITブランチを削除するには、まずマージされているか、保持が不要であることを確認してください。 gitbranch-dを使用して、ローカル合併ブランチを削除します。削除されていないブランチを強制する必要がある場合は、-dパラメーターを使用します。リモートブランチの削除は、gitpushorigin-deletebranch-nameコマンドを使用し、gitfetch-pruneを介して他の人のローカルリポジトリを同期させることができます。 1.ローカルブランチを削除するには、マージされたかどうかを確認する必要があります。 2。リモートブランチを削除するには、-deleteパラメーターを使用する必要があります。 3。削除後、ブランチが正常に削除されたかどうかを確認する必要があります。 4。共有支店が誤って削除されないように、チームと通信します。 5.倉庫を清潔に保つために、定期的に役に立たない枝をきれいにします。

gitリポジトリにサブツリーを追加するにはどうすればよいですか? gitリポジトリにサブツリーを追加するにはどうすればよいですか? Jul 16, 2025 am 01:48 AM

gitリポジトリにサブツリーを追加するには、最初にリモートリポジトリを追加して履歴を取得し、次にGitmergeおよびgitread-treeコマンドを使用してサブディレクトリにマージします。手順は次のとおりです。1。gitremoteadd-fコマンドを使用して、リモートリポジトリを追加します。 2. gitmerge-srecursive-no-commitを実行して、ブランチコンテンツを取得します。 3。GitRead-Tree-Prefix =を使用して、プロジェクトをサブツリーとしてマージするディレクトリを指定します。 4.変更を送信して追加を完了します。 5.更新するときは、最初にgitfetchを繰り返し、マージとステップを繰り返して更新を送信します。この方法により、外部プロジェクトの履歴が完全で保守しやすくなります。

GITステージング領域からファイルを削除するにはどうすればよいですか? GITステージング領域からファイルを削除するにはどうすればよいですか? Jul 12, 2025 am 01:27 AM

soundstageafafileiititwittingchatcase、usegitizeadtordoremevome from arningareailact.toundact rungit reset.forpartialstialing、usgit rets-pointelaveevsteevstehunissehunissue

マージされていなくても、gitブランチを削除するにはどうすればよいですか? マージされていなくても、gitブランチを削除するにはどうすればよいですか? Jul 14, 2025 am 12:10 AM

マルジングのgitブランチを削除するには、gitbranch-dコマンドを使用します。このコマンドは、ブランチのマージステータスを無視し、直接削除します。これは、テスト、放棄された特徴の枝、または遠隔から再作成する必要がある地元の古い枝の後の役に立たない枝に適しています。ただし、提出記録は削除後も局所的に存在し、最終的にはゴミ収集メカニズムによってクリーンアップされることに注意する必要があります。誤った削除の後、gitreflogを介して復元できますが、ウィンドウ期間は短いです。したがって、実行する前に、ブランチが役に立たず、非協力的であり、データの損失を避けるために名前が正しいことを確認してください。

隠し場所から枝を作成するにはどうすればよいですか? 隠し場所から枝を作成するにはどうすればよいですか? Jul 14, 2025 am 12:47 AM

TocreateabranchfromastashinGit,firstlistyourstasheswithgitstashlisttoidentifythecorrectone.Next,createanewbranchusinggitcheckout-bnew-branch-name,thenapplythestashviagitstashapplystash@{0}.Optionally,committheappliedchangeswithgitadd.andgitcommit-m&q

1つのコマンドで新しいgitブランチに作成して切り替えるにはどうすればよいですか? 1つのコマンドで新しいgitブランチに作成して切り替えるにはどうすればよいですか? Jul 16, 2025 am 01:39 AM

はい、コマンドを使用して新しいgitブランチに切り替えることができます。特定の方法は次のとおりです。1。gitswitch-c:これはよりモダンで明確な方法です。たとえば、gitswitch-cnew-featureはすぐにNew-featureという名前のブランチを作成して切り替えます。 2。Gitcheckout-Bを使用:これは古いが一般的に使用される方法です。たとえば、Gitcheckout-Bnew-Featureは前者と同じ効果を持っています。注:GitswitchはGit2.23で導入され、古いバージョンではGitcheckoutを使用する必要があります。 Gitswitch-Cnewなど、他のブランチに基づいてブランチを指定できます。

GITリポジトリからサブモジュールを削除するにはどうすればよいですか? GITリポジトリからサブモジュールを削除するにはどうすればよいですか? Jul 19, 2025 am 01:19 AM

tocleanlyremoveagitsubmodule、firstdeinitializeit withgitsubmoduledeinit-fpath/to/submodule、thendeleteitsfilesviarm-rf.git/modu les/path/to/submoduleandgitrm-fpath/to/submodule、およびfinallyremoveredentriesfrom.git/configand.gitmodulesbeforecommitting

See all articles