2017-07-18 256 views
0

我使用的是真正的不可靠的連接,雖然我嘗試階段犯下如此沒有一個是超過20MB和/或推他們,一旦他們達到一個大小類似,有時是不可能的(少數資產的可大 - 我知道使用git作爲資產也不是最好的主意),並且有90%的機會在連接發送之前連接失敗。是否可以在git中一次一個地提交提交,而不是同時提交所有提交?

是否有可能推提交一個接一個,或者你可以提出任何其他提示,可能是這種情況下有用嗎?

+0

問:你知道,承諾只保存它和以前提交權利之間的變化? 10個提交,您添加一個10 MB文件不等於100 MB。如果你改變這個10MB文件的一行,git將只存儲一行記錄。 – Jacobm001

+0

出於好奇......你在git倉庫中存儲的是如此之大? – Jacobm001

回答

3

是的,這不僅是可能的,但其實很瑣碎。相反的:

git push remote branch 

只需運行:

git push remote <commit-hash>:branch 

一次,每次提交嘗試推搡,在適當的(父母最讓孩子最)的順序。

要自動化此,假設你的遙控器被命名爲origin和你的分支命名爲branch和你origin/branch遠程跟蹤分支是最新的(如果不是運行git fetch origin):

for rev in $(git rev-list --reverse origin/branch..branch); do 
    git push origin $rev:branch; 
done 

這實在是一個-liner分爲三行,用於StackOverflow發佈目的。 (注:這還假定或多或少線性的歷史;添加--topo-order如果不能保證的事情,但隨後你需要--force並有這裏發生的各種不良思想,所以這不是要走的路:你要拆分推動使用一個臨時黨支部,或者在匯合點聚集他們,也許)