Git でコミットを別のブランチに移動する
Git は、現代のソフトウェアの世界で非常に便利で強力なツールです。多くの種類のファイルとコードは、Git での分岐とコミットを介して保存できます。分岐は、使用しているバージョン管理システムによって異なる概念です。多くの開発者は、その効率性から、これが最も好ましいバージョン管理システムであると考えています。
ほとんどの場合、この状況に直面するのは、いくつかの作業を完了して特定のブランチにコミットした後、間違ったブランチに誤ってコミットし、別のブランチで再度コミットしたい場合です。ここで Git が救助に来て、コミットを他の既存のブランチまたは新しいブランチに移動できるようにします。
このガイドでは、コミットを別のブランチに移動する方法の基本的な理解が得られます。これは、新しいブランチでも既存のブランチでもかまいません。さらに、git branch
コマンドを使用して新しいブランチを作成し、git reset
コマンドを使用してコミットを移動し、gitmerge コマンドを使用してそれらの変更をメインブランチにマージする方法について説明します。
Git での移動にコミットする数を計算する
プロセス全体を開始する前に、状況を判断する必要があります。変更するブランチをチェックアウトしたと仮定します。この目的のために歴史を見る必要があります。
次のコマンドを使用して、移動するコミットの数を計算します。
git log
実行後、HEAD
は origin/HEAD
の先頭にある 2つのコミットであり、これらは別のブランチに移動するために必要な 2つの望ましいコミットであることがわかります。以下は残りのステップであり、これらのコミットを新しいブランチまたは既存のブランチに移動する方法について説明します。
コミットを Git の新しいブランチに移動する
以下の手順は、最新のコミットを新しいブランチに移動する方法を示しています。
-
新しいブランチを作成する
git branch feature/new branch
このコマンドは、
master(current)
ブランチのすべてのコミットを含む新しいブランチを作成します。 -
現在のブランチを 2つのコミットに戻します
git reset --keep HEAD~2
-
新しいブランチをチェックしてください
git checkout feature/new branch
これらを実行することにより、最新の 2つのコミットが master
(現在のブランチ)から削除され、feature/new ブランチ
と呼ばれる新しいブランチに追加されました。
Git で既存のブランチにコミットを移動する
以下の手順は、最新のコミットを既存のブランチに移動する方法を示しています。機能ブランチで作業している場合は便利ですが、誤って間違ったブランチでコミットを開始しました。削除したいコミットを含む現在のブランチが master
であると仮定しましょう。
-
既存のブランチをチェックアウト
git checkout feature/existing branch
コマンド
git checkout
は、作業ディレクトリでの作業だけに限定されていません。また、HEAD
参照ポインタをブランチ上の参照ポイントに移動するために使用することもできます。 -
マスターブランチをマージします
git merge master
git merge
コマンドを使用してブランチを現在のブランチにマージすることもできますが、これは、現在のブランチがマージされるブランチにすでにマージされている場合に限ります。 -
マスターブランチをチェックしてください
git checkout master
コマンド
checkout
master は、コードの最新バージョンをプルダウンし、master
と呼ばれる新しいブランチを作成します。 -
現在のブランチを 2つのコミットに戻します。
git reset --keep HEAD~2
オプション
--keep
は、コミットとHEAD
の間で異なる作業ツリー内のインデックスエントリをリセットし、ファイルを更新します。コミット間でファイルが異なり、HEAD にローカル変更がある場合、リセットは終了します。したがって、最新の 2つのコミットがmaster
から削除され、既存のブランチに追加されました。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn関連記事 - Git Commit
- 1つのコマンドで Git Add と Git Commit
- 1つのコマンドで git add、git commit、および git push
- 1つのファイルを除くすべてのファイルをコミット用に追加
- Git で現在のコミットを取得する
- Git で追跡されていないファイルをコミットするさまざまな方法
- Git で特定のコミットを変更する