從 Git 的另一個分支複製提交
在 Git 中工作時,我們希望將來自一個分支的特定單個提交整合到我們當前的 HEAD
分支。這可能是因為客戶希望對產品進行一些更改或任何已報告的錯誤。
要麼我們錯誤地提交了它,要麼我們不想在我們之前的分支中再提交它,而是希望它在我們當前的 HEAD
分支中。
上述問題的答案是 CHERRY PICK。因此,在接下來的部分中,我們將詳細討論 cherry-pick
命令。
從 Git 的另一個分支複製提交
從一個分支中提取一個特定的提交併將其複製到我們當前的 HEAD
分支中稱為 Cherry Picking。
為此,Git 有一個特定的命令,即 Git 的 cherry-pick
命令。挑選櫻桃的另一個用途是在我們合併或開發拉取請求之前應用特定的更改。
這對於撤消更改非常有用。
本文將討論從一個分支中挑選一個特定的提交到另一個分支。
使用 git log
命令檢視提交
首先,我們將使用 git log
來調查我們想要選擇的提交。以下是 git log
命令的分支結果:
d23216 - 953222 - 953219 - aa3s36 - 532d37 [master]
\
76cada - 66ecb3 - b886a0 [feature]
在 feature
分支中,有一個來自另一個分支的提交 66ecb3
,我們只希望在我們的 master
分支中。
讓我們挑選那個特定的提交併將其轉移到當前分支,即 master
分支。然後,我們可以在未來為我們的專案使用該提交更改。
執行 git cherry-pick
命令複製提交
在這裡,git cherry-pick
將幫助我們。66ecb3
是櫻桃,我們想從過去已經完成的大量推送中挑選它。
讓我們通過執行以下命令從另一個分支中選擇它。
git checkout master
git cherry-pick 66ecb3
一旦上面列出的命令成功執行,現在,66ecb3
將作為我們主分支中的新提交。
因此,Git 複製了我們需要的提交,在 master
分支上包含相同的提交訊息和更改。最終,建立了一個帶有新 ID 的新提交。
使用 git reset
命令清理其他分支
如果我們切換到 feature
分支,我們將在其舊位置看到相同的提交。這是因為 Git 已將其複製到另一個分支而不是移動它。
它沒有觸動原來的分支。
現在,為了清理和撤消,我們將在簽出所需的分支後使用命令 git reset
。
$ git checkout Test
Switched to branch 'Test'
$ git reset --hard HEAD~1
HEAD is now at 66ecb3 Change the title and delete the error page
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