我們想將一個20.00以上的提交本地Git倉庫推送到GitHub,但事實證明,儘管轉移本身沒有問題,GitHub實際上並不一次處理超過1000次提交(「process」意味着它們會鏈接提交問題等)。「chunked」是否推向遠程Git回購?
因此,爲了能夠正確地傳輸這個存儲庫並使其正確處理,我們應該一次傳輸不超過1000個「塊」。但是如何?
我們嘗試以某種方式回到歷史中,每次向前推進,但是我們必須使用錯誤的「排序」,因爲這隻會導致很多問題。
我們想將一個20.00以上的提交本地Git倉庫推送到GitHub,但事實證明,儘管轉移本身沒有問題,GitHub實際上並不一次處理超過1000次提交(「process」意味着它們會鏈接提交問題等)。「chunked」是否推向遠程Git回購?
因此,爲了能夠正確地傳輸這個存儲庫並使其正確處理,我們應該一次傳輸不超過1000個「塊」。但是如何?
我們嘗試以某種方式回到歷史中,每次向前推進,但是我們必須使用錯誤的「排序」,因爲這隻會導致很多問題。
只要你使用bash,你可以運行下面的腳本:
#!/bin/bash
for i in $(seq 20000 -900 0)
do
git push origin master~$i:master
done
git push origin master:master
它會遍歷從20000到0和反覆推致力於遠程分支master
。
master~n
是Git語法並且表示在master
之前的第n次提交。
幾乎在那裏,但它'git push [
謝謝,我也注意到了。 –
廣告編輯:'HEAD〜$ i'不屬於refspec_。它將不被接受。因爲你可以推送修訂,但你必須將其推送到分支。 –
人們通常推引用到遠程,所以你應該git reset
您master
分支任何承諾這符合要求的被COMMITED(即,它是小於1000從回購的開頭提交或最後推提交)。假設你已經確定(使用tig
或git log
)您第九百九十八提交是abd123124
和第一千九百八十零承諾是bad1424
,您可以:
$ git checkout -b real_master # create a 'backup' branch for not losing the reference
$ git checkout master
$ git reset abd123124 # set master to the 998th commit
$ git push origin master
$ git reset bad1424 # set master to the 1980th commit
$ git push origin master
等。
我認爲你不應該對工作樹有任何問題,但如果你這樣做,git checkout .
應該解決它。
你肯定可以做任何腳本自動這次提交發現的事情,但如果你知道你的回購的日誌大小,你可以使用real_master~NUMBER
復位(比如,你的回購有正是 20K提交,你可以使用real_master~19000
,real_master~180000
,等等)。
沒有必要重置。您可以推送修訂版。 –
什麼樣的問題? –
像這樣的事情: 錯誤:未能將某些參考推送到'起源' 提示:更新被拒絕,因爲您當前分支的提示位於 提示:其遠程對應端。合併遠程更改(例如'git pull') 提示:再次推送之前。 提示:有關詳細信息,請參閱'git push --help'中的'關於快速轉發的注意事項'。 (抱歉亂七八糟,似乎無法讓格式化在這裏工作) – Quintesse
您只能在問題中添加格式。它是可編輯的,並且是添加更多細節的適當位置。 –