![](/img/trans.png)
[英]Git: Merge local branch to remote branches A and B without inserting code from A into B/ B into A
[英]Git, create local branch (A) from two other branches (B and C) and then merge from A to B without C files
我開發Magento模塊,我有兩個repos首先是我的模塊,另一個是Magento本身。 我將模塊repo克隆到目錄,然后將Magento repo添加為遠程,並在一個名為testing的本地分支中合並兩個分支。 它工作正常。 但是在開發時我需要在編輯器中打開兩個項目(模塊和Magento),所以我在測試分支中編輯代碼然后我需要提交更改。 但我不能只是將測試合並到模塊分支,因為我在測試分支中有Magento文件,我在模塊分支中不需要。
有沒有辦法將更改從測試合並到模塊分支而沒有來自magento分支的文件?
子模塊和子樹不起作用,因為我的分支與其根目錄重疊,模塊不僅僅是magento分支的子目錄。
謝謝。
您真的想將測試分支合並到模塊分支嗎? 即使您正在尋求合並后Magento文件不會出現,所有Magento歷史記錄將與您的模塊分支歷史密不可分。 這可能不是你想要的。
如果你真的想要合並,你可以編寫自己的合並策略或使用git merge --no-commit
,手動刪除模塊分支中你不想要的Magento文件並提交生成的合並。 如果手動刪除工作太多,您可以使用git revert -n -m1 <unwanted-merge-id>
。
我建議更清潔的解決方案是挑選並重新創建測試分支 。 您總是將Magento分支合並到您的測試分支中,我假設您在測試中沒有其他合並。
這個櫻桃選擇(復制到當前分支)來自測試分支的非合並提交列表,因為它與當前分支的共同祖先:
git rev-list --reverse --first-parent --no-merges ..testing | git cherry-pick --stdin
然后你可以擺脫舊的測試分支,因為它包含不必要的合並,其內容與你的模塊分支相同。 您可以在模塊分支上重新啟動它。 從您的測試分支調用git reset --hard module
- 但請確保您事先沒有未經修改的更改,因為它們會丟失!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.