我從主機分支X,從主機刪除一些代碼Y.當我將代碼從X合併回到主數據庫時,我如何使它返回給主數據庫(因爲它尚未從X中刪除)。分支後刪除主機的某些代碼時Git分支和合並
回答
只是運行git merge
,這就是這個命令的用途。
它會嘗試將Y
和X
的修改組合在一起。
如果你創建了一個分支,在master中修改代碼併合並(至少在這個部分)不變的分支,那麼代碼將不會回來。
Git是關於更改(「提交」)。如果您在已更改主控的相同位置合併了已更改部件的分支,則會收到通知並且合併已暫停。否則,更改是,合併。
,當你最後運行git checkout master && git merge branch-X
,Git會:
- 找到
master
當前尖端的合併基礎,並提交給該名branch-X
做出決議; - 運行兩個
git diff
s將基數與每個分支點進行比較;和 - 嘗試合併所得變更集,將此組合應用於合併基礎內容,以提出合併內容。
如果master
側的變化包括刪除一些套系Y
的,這是一個輸入步驟3.有沒有辦法避免它成爲一個輸入步驟3
除非您使用不同的合併策略 - 合併策略具有完全控制權,因此可以修改上述三個步驟中的任何一個或全部,或者甚至可以消除部分或全部這些步驟 - 您現在可以做的唯一事情就是爲災難做好準備在步驟3期間:
- 讓自己(或合併的人)記錄。例如,用一條喊出來的線替換被刪除的線:「在合併後把這些東西放回原處。」
- 嘗試安排一個合併衝突,通過確保將來的任何提交將是
branch-X
的提示將包含對同一組行的更改。
這樣做會有最高的成功機率,因爲誰合併(你或別人)會看到警告的警告。但請注意,這兩個準備步驟可能會被未來的其他人撤銷,在未來的某個時間git merge
之前。沒有什麼可以做,以防止這種情況。
凡實際運行git merge
,在未來,有這個控制,通過git merge -s <strategy-name>
。然而,在目前以及我認爲可以預見的將來,並不是神奇的合併策略,無論如何它都會做你想要的。所以這也沒什麼幫助。
謝謝!它是我想要做的。 –
儘管如此,你可能會更好地服務於不同的策略(不是「合併策略」,而是整體使用Git):不是提交'master'來刪除一堆行,而是創建一個新分支'刪除了一堆線。保持'master'原樣,並使用'for-now'來部署,直到你認爲事情已經準備好。 – torek
是的,我結束這種情況的唯一原因是因爲我們有一羣人同時寫功能,然後2個月後,決定刪除其中一個。到那時已經有一個巨大的承諾,它似乎更容易從主人身上移除它。但事實證明,另一個功能需要這個工作,並出現在X分支,當X需要回到主 - 爆炸 –
- 1. 刪除後合併git分支
- 2. Git:將分支合併到主分支或主分支
- 3. 切換主分支後git合併到主分支中
- 4. Git合併分支與主
- 5. VSTS合併的Git分支孫子到主後子分支已合併到主
- 6. 合併到主人後自動刪除git分支
- 7. 2分支主分支 - 合併分支1回到主分支並使用分支2中的代碼?
- 8. GIT合併,分支機構
- 9. 如何從git中的多分支合併中刪除分支?
- 10. Git分支與ff合併從主 - 刪除ff合併
- 11. Git分支刪除[AWS代碼提交]
- 12. 刪除Git分支
- 13. 合併兩個Git分支,但排除某些文件
- 14. GIT重置分支並刪除合併後的所有更改
- 15. Git分支和合並
- 16. 分支和Git合併
- 17. Git分支和合並
- 18. git分支合併
- 19. 合併Git分支
- 20. 如何從Git分支測試代碼而不與主分支合併?
- 21. 在rebase之後安全地刪除本地分支 - 替換git分支 - 合併
- 22. 合併後保持master分支沒有刪除代碼
- 23. git將分支合併到分支
- 24. 在subsvn中將分支合併到主幹後,您會刪除分支嗎?
- 25. 合併的Git分支到主
- 26. 合併更改蓋分支到主分支中的git
- 27. Git,合併分支git
- 28. ClearCase - 將父級和子級分支合併爲主(分支機構分支)
- 29. 合併分支'主'
- 30. 用git合併分支,除了文件移動和刪除
我明白這一點。有沒有辦法克服這一點,除了愚蠢的複製粘貼? –
假設我得到了你想要的東西,那完全不是git的目的。這將恢復主分支中的所有更改。分支並不意味着是備份快照。但是,您可以在兩個分支之間創建差異並創建還原提交。 – clemens321
另一種方法是使用「git reset」,它會將分支引用更改爲任何其他提交。但要小心,這可能會刪除其他提交,並且如果您使用遠程存儲庫,則可能導致非轉發操作。 – clemens321