我有分支主分支dev。我錯誤地從主人開始了一個功能分支。意思是,我在做主人時做了git checkout -b feature-branch
。將分支合併到與起始分支不同的分支
現在我想合併分支開發中的功能分支。我該怎麼做?
我有分支主分支dev。我錯誤地從主人開始了一個功能分支。意思是,我在做主人時做了git checkout -b feature-branch
。將分支合併到與起始分支不同的分支
現在我想合併分支開發中的功能分支。我該怎麼做?
如果沒有太多的提交,然後「混帳cherrypick」是一個選項:
編輯:我添加了一個例子,如何做同樣用「git的變基」命令:
您還可以使用支〜n的語法,而不是提交哈希如果你不害怕提交提交;)儘管它只是一個命令,但我仍然會使用第一個選項,因爲它需要付出相當多的努力才能使其正確(即檢查手冊,選擇正確的命令行參數)。所以只有移動更長的主題分支纔有意義。
這實際上是最簡單的解決方案! –
另一個不錯的選擇是「git rebase」,但這可能需要更多的時間和精力來獲得命令行參數。 – JooMing
只是出於好奇,我如何用rebase做到這一點? –
將您從一個branch
所做的已提交更改合併到另一個您可以使用的:git merge <branchname>
。讓我幫你一個例子:」
我要合併我已經與分支dev
所做的更改我的master branch
我會做的第一件事是提交分支dev
的變化的話,我會切換到分支。 master
,我會通過合併從dev
分支的變化:
git merge dev
所以一步一步:首先從開發分支提交更改
git commit -m "<commit message>"
第二步:SWITC h至主分支
git checkout master
最後一步:/從dev
分支合併更改
git merge dev
希望這有助於!
在開始工作之前,您可以使用'git log'來查找點,然後使用'git diff'來查找當前HEAD和該點之間的差異。 'git apply'將應用該差異。
在你的功能分支上,使用git log來查找你的工作的開始。在工作之前記錄提交。
git checkout feature-branch
git log
商店(當前HEAD修訂版),你上面找到的點和你的工作之間的差別。 HEAD是一個暗示的論點。
git diff (commit_from_step_above) > patch.txt
將您的更改應用於正確的功能分支。
git checkout dev
git checkout -b proper_feature-branch
git apply patch.txt
(add, commit, etc)
如果其他人已經改變了您要更改相同的文件,你就會有一個合併衝突。這是預料之中的。
'git checkout master && git merge featurebranch' ?? – ckruczek
@ckruczek但我想合併到dev –
然後簽出dev而不是master。怎麼了? – ckruczek