我正在進入GIT世界,但它似乎像GIT有一個巨大的劣勢。 因爲您正在提交到您自己的本地存儲庫,並且只有在提交了多份提交內容之後才提交給外部世界,是否會創建多個大合併?GIT是否強制許多大合併?
2
A
回答
6
真的,在git中幾乎所有情況下都有合併的方法。不是合併,而是重新綁定本地存儲庫,重新安排歷史記錄。通過使用rebase,規範/源代碼庫永遠不會重新排列,並且很少有任何合併提交,但本地資料庫歷史記錄會重新排列以更貼近主要的repo。
所以:
git fetch
git rebase origin/master
// resolve any conflicts (if there are any) by altering your own commits
git rebase --continue
git push
而且所有的提交將是原子,並且原點/主機將不會有任何合併提交。
現在,在極罕見的情況下,重新綁定過程將變得複雜,您會發現自己解決了很多衝突,在這種情況下,您可能需要git rebase --abort
並退出rebase過程,然後進行合併相反,但我已經走了幾個月而不需要求助於合併,所以保持歷史線性並不難。
本質上,這是在採取最少的破壞性方法。你在說:「嘿,我所有的提交都是我添加到本地主分支的 - 之後 - 無論其他人投入中央/規範分支是我的責任,所以 - 我將是重新安排我的碼。」通過這種方式,無論進入任何存儲庫的主分支,都被視爲規範FIRST優先,而其他人不必處理合並提交,這些提交會重寫歷史記錄,以便成功推送到主分支。
3
嗯,是的,你可以發現自己處於這種情況,但它是可以避免的。即使你決定推你的回購只有幾次(N次)提交後,你仍然可以從其他分支拉不斷,以便你總是與任何其他人正在做的整合。無論如何,Git還是非常擅長合併。
2
根本不是。 git中的每個提交都是唯一可識別的,而不管它存在哪個回購。因此,合併工作完全按照他們應該的方式進行。 Git對衝突解決方案也提供了非常好的支持,使得合併比其他VCS更好。
0
它主要取決於您決定使用push
代碼的頻率以及其他代碼的使用頻率。例如,如果你推動一個小的改變,而其他人提出這個改變,它不會是一個大的合併。但是,如果你在本地無數次的時候才推動,那麼拉可能是一個大合併。
我希望這會有所幫助。
相關問題
- 1. 推動主源時,git是否強制本地更新/合併?
- 2. 按文件強制合併文件 - git
- 3. 在git中強制合併的最佳方式是什麼?
- 4. 如何強制手動合併git而不是快進
- 5. 強制git按照git-diff變化合並
- 6. 使git只是*複製*(不合並)?
- 7. 強制合併分支
- 8. cocos2d-x是否強制多重繼承?
- 9. 強制git在合併時識別文件已移動
- 10. 在git中存在分階段更改時強制不合並
- 11. 如何強制git認爲文件未被合併?
- 12. 強制不合並,而git中存在未分離的變化
- 13. 我可以在git中強制執行合併分支嗎?
- 14. GIT中:禁止對意外強制合併測試到主
- 15. Git允許無基本的合併嗎?
- 16. 撤消多個git合併
- 17. 此強制是否會在合併複製拓撲中重新初始化?
- 18. 是多麼強大的CMS
- 19. 是python os.popen足夠強大以處理許多請求?
- 20. Swing:DefaultBoundedRangeModel是否合併多個事件?
- 21. 強制分支在重新合併之前合併並推入
- 22. python - cx_Oracle是否允許您強制所有列爲cx_Oracle.STRING?
- 23. 當驗證失敗時,ActiveRecord是否允許強制保存?
- 24. 我如何測試是否允許強制推送?
- 25. 是git重置 - 如果合併失敗,硬件是否必要?
- 26. git合併不合並
- 27. git是否允許「裸」子模塊?
- 28. WPF:與強制大寫的組合框?
- 29. 使用Git與許多,許多回購
- 30. Git,XIBs,合併