簡體   English   中英

Git:當沒有沖突發生時,如何手動操作/設計兩個分支之間的合並

[英]Git: How to manually manipulate/craft a merge between two branches when no conflict occurs

假設有一個功能分支,我們將其稱為分支A
分支A包含三個文件: A1 (index.html), A2 (main.css)和A3 (script.js)。
從分支A創建/簽出分支B ,得到B1B2B3
現在,假設B1 - B3所有內容都被完全刪除並且編寫了完全不同的代碼,然后提交給分支B
假設分支B所有文件的新代碼最終將需要作為其子集集成到原始代碼中。

我希望能夠通過簽出分支A並運行git merge B來實現將B代碼集成到A代碼中。 我以為這會給我帶來合並沖突,我可以用它來制作新版本的A1 - A3提交到分支A 但是,Git沒有產生預期的合並沖突,而是用B代碼完全替換了所有A代碼。

這兩個分支的代碼如何集成?
我意識到一個人可以從B文件中復制代碼,然后將其粘貼到A文件的代碼中,而A一切都在Git之外。 但是,我認為這不是一個理想的解決方案,因為項目歷史不會反映出以下事實: A代碼中的某些來自B

如果分支A上沒有新提交,則分支BA的后代。 因此,合並(默認情況下)是作為快進完成的,即,僅A設置為B不會生成任何明確的合並提交。 (您可以使用git merge --no-ff選項生成一個顯式的合並提交。)

合並的想法是將所有新更改集成到舊狀態。 如果更改是用完全不同的方式替換一個文件的內容,則可以通過在分支A上完全執行此操作來集成更改,這將產生新的內容。

我目前無法想到這不是您想要的情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM