在 Git 中使用 Cherry-Pick 進行多次提交

Abdul Jabbar 2023年1月30日
  1. Git 中的 Git mergeGitCherry-Pick 命令之間的區別
  2. Git 中的 Cherry-picking 錯誤修復提交
  3. Git 中的多個 cherry-pick 提交
  4. 使用 Rebase 命令在 Git 的特定分支上選擇所需的更改
在 Git 中使用 Cherry-Pick 進行多次提交

完成分支工作後,我們通常不需要合併到現有檔案中。

我們經常需要從不同的分支獲取一些特定的提交,而不是在一個特定的分支中處理所有的提交。這就是為什麼在 Git 中使用 git-cherry pick 命令的原因。

Git 中的 Git mergeGitCherry-Pick 命令之間的區別

git merge 就像 Git cherry-pick 命令。Git cherry-pick 命令用於將另一個分支的更改同化到我們想要的分支。

在使用 merge 命令時,我們通常可以將在另一個分支中完成的所有更改同化到我們想要的分支中。

但另一方面,有時我們只需要在我們想要的分支中進行一些更改。為此,Git cherry-pick 命令是最安全的選擇。

Git 中的 Cherry-picking 錯誤修復提交

Cherry-picking 通常可以解釋為將錯誤修復更新到我們軟體的先前版本,這意味著僅從特定分支中的數百個錯誤修復中獲取一些明確的錯誤修復提交。

然後出於任何原因在將來使用該特定的錯誤修復提交。當團隊想要修復生產或實時 Web 或桌面應用程式中的一些重要錯誤時,主要使用此語句或命令。

使用此命令,團隊準備釋出並將其部署到生產或實時環境中。

Git 中的多個 cherry-pick 提交

在某些情況下,我們希望在不同分支中同時對多個提交應用 cherry-pick。然後我們必須首先識別兩個提交併在其上使用以下命令。

之後,可以使用 A 和 B 分支之間的點表示法在多個提交上完成 cherry-picking,如下面的命令所示:

$ git cherry-pick A..B

應用此命令後,commit A 將不會被同化為 cherry-pick

為了同化 commit A,我們可以使用以下語法:

$ git cherry-pick A^..B
注意
提交應該以完美的順序放置。Commit A 應該早於 commit B。如果這不是完美的順序,則使用的命令將失敗,我們需要根據上述條件使用它。

使用 Rebase 命令在 Git 的特定分支上選擇所需的更改

我們還有另一種方法可以使用 Git 中的 rebase 命令在特定分支中選擇所需的更改或提交。在此方法中,我們可以使用選項 onto``rebase 命令。

我們可以在兩種情況下使用 git rebase --onto

  • 第一個條件是我們有一個分支想要替換它在倉庫中的父分支。
  • 其次,我們希望立即從倉庫中的當前分支中刪除一些提交。

假設我們的 branch 是在 D 結束的分支,這是我們想要將 C-Y 移動到的所需分支。

git reset --hard Y

git rebase --onto A B

它幫助我們從特定點開始變基或提交到所需的提交。我們可以完全管理在特定分支提交中要變基的內容和變基的位置。

作者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

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