Git合併指定檔案到另乙個分支

2021-10-08 22:07:54 字數 1541 閱讀 5432

git合併指定檔案到另乙個分支

經常被問到如何從乙個分支合併特定的檔案到另乙個分支。其實,只合併你需要的那些commits,不需要的commits就不合併進去了。

合併某個分支上的單個commit

首先,用git log或sourcetree工具檢視一下你想選擇哪些commits進行合併,例如:

比如feature 分支上的commit 82ecb31 非常重要,它含有乙個bug的修改,或其他人想訪問的內容。無論什麼原因,你現在只需要將82ecb31 合併到master,而不合併feature上的其他commits,所以我們用git cherry-pick命令來做:

git checkout master  

git cherry-pick 82ecb31

這樣就好啦。現在82ecb31就被合併到master分支,並在master中新增了commit(作為乙個新的commit)。cherry-pick 和merge比較類似,如果git不能合併**改動(比如遇到合併衝突),git需要你自己來解決衝突並手動新增commit。

這裡git cherry-pick每次合併過來會顯示檔案衝突(其實並沒有衝突**部分,只需手動解決既可)

合併某個分支上的一系列commits

在一些特性情況下,合併單個commit並不夠,你需要合併一系列相連的commits。這種情況下就不要選擇cherry-pick了,rebase 更適合。還以上例為例,假設你需要合併feature分支的commit76cada ~62ecb3 到master分支。

首先需要基於feature建立乙個新的分支,並指明新分支的最後乙個commit:

git checkout featuregit 

git checkout -b newbranch 62ecb3

然後,rebase這個新分支的commit到master(–ontomaster)。76cada^ 指明你想從哪個特定的commit開始。

git rebase --ontomaster 76cada^
得到的結果就是feature分支的commit 76cada ~62ecb3 都被合併到了master分支。

另外如果只想將feature分支的某個檔案f.txt合併到master分支上。

1: git checkout feature

2: git checkout --patch master f.txt

第乙個命令: 切換到feature分支;

第二個命令:合併master分支上f檔案到feature分支上,將master分支上 f 檔案追加補丁到feature分支上 f檔案。你可以接受或者拒絕補丁內容。

如果只是簡單的將feature分支的檔案f.txt copy到master分支上;

git checkout master

git checkout feature f.txt

無論從事什麼行業,只要做好兩件事就夠了,乙個是你的專業、乙個是你的人品,專業決定了你的存在,人品決定了你的人脈,剩下的就是堅持,用善良專業和真誠贏取更多的信任。不忘初心 方得始終!

Git合併指定檔案到另乙個分支

經常被問到如何從乙個分支合併特定的檔案到另乙個分支。其實,只合併你需要的那些commits,不需要的commits就不合併進去了。首先,用git log或sourcetree工具檢視一下你想選擇哪些commits進行合併,例如 比如feature 分支上的commit 82ecb31 非常重要,它含...

git 乙個分支覆蓋另乙個分支

git 遇到的問題 git fetch 分支 git merge fenzhi 本地 沒有更新 比如1.我想將test分支上的 完全覆蓋dev分支,首先切換到dev分支 git checkout dev 2.然後直接設定 給遠端的test分支上的 git reset hard origin test...

git 合併指定檔案到當前分支

前言,最近接到領導通知,說要將上一周完成的功能 合併到另外乙個分支上。然後我就切換目標分支,發現 的提交記錄已經滯後了很多,又不能將 全部合併過來,就只能研究如何將部分 合併過來。話不多說,擼起袖子加油幹 git checkout 目標分支 git checkout patch 檔案所在分支 檔案物...