【Git】Git 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )
文章目錄
- 一、環(huán)境準(zhǔn)備
- 二、創(chuàng)建新分支應(yīng)用 dev2 提交
- 三、git cherry-pick 沖突處理
一、環(huán)境準(zhǔn)備
git cherry-pick 命令的作用是 將指定的 一個或若干個 提交記錄 , 應(yīng)用與當(dāng)前的分支 ;
創(chuàng)建一個 dev 分支 , 然后在該分支中 , 編輯 file1.txt 文件 , 分別添加 444 行 文本 , 每行都提交一次 ;
執(zhí)行
git reflog查看 444 次提交的哈希碼 :
D:\Git\git-learning-course>git reflog 29206c6 (HEAD -> dev) HEAD@{0}: commit: dev4 31914ab HEAD@{1}: commit: dev3 cc5fe50 HEAD@{2}: commit: dev2 f12e2d3 HEAD@{3}: commit: dev1 2bd4156 (origin/master, origin/HEAD, master) HEAD@{4}: checkout: moving from master to dev 2bd4156 (origin/master, origin/HEAD, master) HEAD@{5}: clone: from https://codechina.csdn.net/han12020121/git-learning-course二、創(chuàng)建新分支應(yīng)用 dev2 提交
執(zhí)行
git switch master命令 , 切換換到 master 分支 , 將 dev 分支中的 dev1 提交 , 作為當(dāng)前分支的最新的提交內(nèi)容 ;
f12e2d3 HEAD@{3}: commit: dev1執(zhí)行
git cherry-pick f12e2d3命令 , 正式將 dev1 提交作為當(dāng)前 master 分支的內(nèi)容 ; 該操作沒有沖突 , 可以直接執(zhí)行 ;
D:\Git\git-learning-course>git switch master Switched to branch 'master' Your branch is up to date with 'origin/master'.D:\Git\git-learning-course> D:\Git\git-learning-course>git cherry-pick f12e2d3 [master 2321849] dev1Date: Thu Dec 9 20:58:46 2021 +08001 file changed, 3 insertions(+), 1 deletion(-)D:\Git\git-learning-course>三、git cherry-pick 沖突處理
在 dev 分支中 , 執(zhí)行
git switch -c dev_1命令 , 直接基于 dev 分支創(chuàng)建新的分支 dev_1 , 注意此時的 dev 分支有 444 個提交 , dev_1 也有 444 個提交 ;
執(zhí)行
git cherry-pick f12e2d3命令 , 將 f12e2d3 提交作為當(dāng)前 dev_1 分支的當(dāng)前提交內(nèi)容 , 此處出現(xiàn)了沖突 ;
f12e2d3 提交記錄的內(nèi)容 :
f12e2d3 HEAD@{3}: commit: dev1執(zhí)行過程 :
D:\Git\git-learning-course>git cherry-pick f12e2d3 Auto-merging file1.txt CONFLICT (content): Merge conflict in file1.txt error: could not apply f12e2d3... dev1 hint: After resolving the conflicts, mark them with hint: "git add/rm <pathspec>", then run hint: "git cherry-pick --continue". hint: You can instead skip this commit with "git cherry-pick --skip". hint: To abort and get back to the state before "git cherry-pick", hint: run "git cherry-pick --abort".沖突文件內(nèi)容 :
hello world hello worldgit branch dev<<<<<<< HEAD devdev2dev3dev4 ======= dev >>>>>>> f12e2d3 (dev1)手動解決沖突 , 然后編輯為 :
hello world hello worldgit branch devdev先執(zhí)行
git add .命令, 提交該文件到暫存區(qū) , 然后執(zhí)行
git cherry-pick --continue命令 , 繼續(xù)執(zhí)行 git cherry-pick 命令后續(xù)操作 , 期間會彈出 vim 編輯器 , 輸入提交內(nèi)容 ;
D:\Git\git-learning-course>git cherry-pick --continue [dev_1 301c619] dev1Date: Thu Dec 9 20:58:46 2021 +08001 file changed, 6 deletions(-)D:\Git\git-learning-course>總結(jié)
以上是生活随笔為你收集整理的【Git】Git 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】Git 使用报错 ( git
- 下一篇: 【Git】Git 标签使用 ( 查询哈希