在 Git 中將提交移動到另一個分支
Git 是現代軟體世界中非常有用且功能強大的工具。許多型別的檔案和程式碼可以通過 Git 中的分支和提交來儲存。分支是一個不同的概念,具體取決於你使用的版本控制系統。由於其效率,許多開發人員認為它是最受青睞的版本控制系統。
大多數時候,當完成一些工作並提交到特定分支後,我們會遇到這種情況,我們意識到我們錯誤地提交到了錯誤的分支,並想在另一個分支上再次提交。Git 來救我們了,它允許我們將提交移動到其他現有分支或新分支上。
本指南將讓我們基本瞭解如何將我們的提交移動到另一個分支,它可能是一個新的或現有的分支。此外,我們將討論如何使用 git branch 命令建立新分支,使用 git reset
命令移動提交,以及使用 git merge 命令將這些更改合併回主分支。
在 Git 中計算遷移的提交次數
在開始整個過程之前,我們需要判斷情況。假設我們已經檢查了要更改的分支;為此,我們需要了解歷史。
我們將使用以下命令來計算要移動的提交數。
git log
執行後,我們可以看到 HEAD
是 origin/HEAD
頭部的兩個提交,這是我們需要移動到另一個分支的兩個期望提交。下面是剩下的步驟,我們將在其中介紹如何將這些提交移動到新分支或現有分支。
在 Git 中移動提交到一個新的分支
下面提到的步驟將向我們展示如何將最新的提交移動到新的分支。
-
建立一個新分支
git branch feature/new branch
此命令將建立一個新分支,其中將包含
master(current)
分支的所有提交。 -
將當前分支移回兩個提交
git reset --keep HEAD~2
-
檢視新分支
git checkout feature/new branch
通過執行這些,我們的兩個最新提交已從 master
(當前分支)中刪除並新增到一個名為 feature/new branch
的新分支中。
將提交移動到 Git 中的現有分支
下面提到的步驟將向我們展示如何將最新提交移動到現有分支。如果我們一直在使用功能分支,這對我們很有用,但是我們開始錯誤地在錯誤的分支中進行提交。讓我們假設當前分支以及我們要刪除的提交是 master
。
-
檢出現有分支
git checkout feature/existing branch
命令
git checkout
不僅限於使用工作目錄。它也可以用於將HEAD
參考指標移動到分支上的參考點。 -
合併主分支
git merge master
git merge
命令也可用於將分支合併到當前分支中,但前提是當前分支已經合併到正在合併的分支中。 -
檢視主分支
git checkout master
命令
checkout
master 拉下最新版本的程式碼並建立一個名為master
的新分支。 -
將當前分支移回兩個提交:
git reset --keep HEAD~2
--keep
選項將重置索引條目並更新工作樹中提交和HEAD
之間不同的檔案。當 commit 之間的檔案不同且 HEAD 有本地更改時,reset 將終止。因此,最新的兩個提交已從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