回答
在最終結果是:號在此期間,所述多個推將使中間人更早提交。但在第10次推出vs單曲結束時,您將推出10次提交。
這很容易測試自己。
但是,如果您的計算機在進行單次提交之前崩潰,那麼與增量推送相比,您將失去更多工作。
或者,另一位貢獻者可能會遇到更多合併衝突,或者至少在獲取您的增量更改時遇到更大的延遲。
如果您進行了10次更改,每次提交一次提交,而單次提交更改爲10次,那麼您將有什麼區別。
這取決於貢獻者的數量和遠程存儲庫的合併策略。
只有一個貢獻者和政策允許直接推送。
不同之處在於您運行push命令的時間。最終的代碼和歷史在兩種方式中都是相同的。
不止一個貢獻者和政策允許直接推送。
如果您通過一次推送推送10次提交,則由於快進推送或由於非快進推送導致的失敗而導致成功。如果您推送一次提交,由於非快速推送,您有更多機會失敗。在兩次推送之間,遠程分支可能會被其他貢獻者更新,這會使您的本地分支與遠程分支分離,並且在您執行提取和合並/重新綁定之前,您的下一次推送將失敗。 「獲取和合並/重新分配」可以在單個命令
git pull
或git pull --rebase
中完成。合併策略僅允許合併/重新綁定請求。
如果只有一個貢獻者,那麼採用這樣的策略是不太可能的。所以我們只是談論一個團隊。如果您的團隊正在使用Gerrit等評估工具,您將面臨這種情況。推後,新的提交不會立即合併到遠程分支中。每個提交都保存在由Gerrit使用的ref中,例如
refs/changes/34/12234/1
之類的引用。審查人員審查您的更改並批准後,這些參考文件將被合併到真實分支中。如果評審人員認爲它不合格,那麼裁判將被拒絕。您必須修改它或重置爲先前的提交,進行新提交併再次推送。新的參考將被創建以進行審查。 Github中的拉取請求並不完全相同,但非常相似。在這種情況下,即使它是非快進推送,您的推送也會始終成功,因爲您實際上並未推送到真正的分支。 Gerrit帶領你推動創造其他裁判。如果您一次推動10次提交,則會創建10次引用,並且全部都是依賴的。您可以將它們從最老的到最年輕的一個接一個地合併。如果有任何衝突,你可以修復它,或者跳過它並重新設置他們的繼任者。
如果您在先前批准併合並後推送一個提交併推送下一個提交,則其他團隊成員可以在兩次推送之間推送併合並它們的提交。同樣,你可能會有更多的機會失敗,因爲你的下一次合併總是有可能引發衝突。兩次推動之間的時間間隔越長,失敗的機會就越多。當然,在每次推送之前,一個
git pull
或git pull --rebase
會降低可能性,因爲大多數潛在的衝突都可以在本地修復。但並非所有的東西都可以避免,因爲無論何時需要合併ref,真正的分支可能在第二個之前被其他人更新。真實情況比較複雜,差異可能很大。
- 1. 推之前多次提交
- 2. 有沒有這樣做的PHP函數?
- 3. PHP:你有沒有這樣做?
- 4. 首次提交沒有提出ShaderPreferenceChanged
- 5. 刪除上次提交併推送
- 6. 「自上次提交以來沒有更改或添加文件。沒有什麼TortoiseSVN在這裏做...「
- 7. SharedPreferences.Editor初次提交後沒有更新
- 8. 有沒有一種方法在SVN提交多次而不更新每次?
- 9. 表單在IE中多次提交取決於沒有點擊提交按鈕
- 10. 「這將合併0次提交。」
- 11. 多次提交
- 12. 多次提交
- 13. 凝聚在沒有合併衝突的一個分支多次提交問題
- 14. Django添加/刪除表單沒有多次提交
- 15. 沒有自動提交的git合併
- 16. collection_select並沒有被提交數據庫
- 17. 後,我沒有git rebase它應該這樣只有一個提交
- 18. 有沒有人使用Twitter + OAuth庫,並做了轉推?
- 19. 在Ruby on Rails中有沒有這樣做的乾淨方法
- 20. 有沒有這樣做類型比較的理由?
- 21. 無法使用Javascript。有一段時間沒有這樣做
- 22. 多行表沒有提交後陣列
- 23. 多個記錄提交沒有嵌套
- 24. jquery表單驗證沒有提交併提交可能?
- 25. 表單沒有提交,並沒有與MVC產生錯誤
- 26. 阿賈克斯沒有提交提交
- 27. 提交表單沒有提交按鈕
- 28. 有沒有辦法壓縮已提交的合併請求中的提交?
- 29. 有沒有辦法將幾個git提交合併爲一個提交?
- 30. Git擴展沒有顯示一次提交的所有文件
我想補充一點,雖然逐步推送確實提供了很多好處,但它也有成本,例如,您不能再安全地使用歷史清理功能,例如rebase。 – LightBender