2017-07-18 4 views
0

私は本当に信頼性の低い接続を使用していますが、コミットを実行しようとしているうちにどれも20MBを超えないようにしたり、そのようなサイズに達するとプッシュしたりすることはありません。 big - 資産にもgitを使用するのはベスト・アイデアではないことが分かります)、すべてが送信される前に接続が失敗する確率は90%です。gitでは、一度にコミットするのではなく、コミットを1つずつプッシュすることは可能ですか?

コミットを1つずつプッシュすることは可能ですか、この場合に役立つヒントを提案できますか?

+0

質問:コミットは、そのコミット権と以前のコミット権との間の変更のみを保存することは知っていますか? 10 MBのファイルを1つ追加した10のコミットは、100 MBと同じではありません。そしてその10 MBファイルの1行を変更すると、gitはその行だけのレコードを保存します。 – Jacobm001

+0

好奇心が...あなたのgit repoには何が大量に保存されていますか? – Jacobm001

答えて

3

はい、それだけではありませんが、実際にはかなり簡単です。代わりに:

git push remote branch 

だけで実行します。

git push remote <commit-hash>:branch 

を一回ごとに、適切な(親・子最も-ほとんどの)ために、押してみてくださいすることを約束します。 (ない場合はgit fetch originを実行します)

は、あなたのリモートが originという名前で、あなたの分岐が branchを命名し、あなたの origin/branchリモート追跡ブランチが最新の状態であると仮定して、これを自動化するには:本当に1

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

あります-linerはStackOverflowの投稿用に3行に分割されています。 (注:これはまた、線形履歴の多かれ少なかれを前提としていますが、もしそうでなければを追加してください。--forceが必要です。ここにはさまざまな悪い考えがあります。おそらく、一時的なブランチを使用するためにプッシュを分割するか、マージポイントでそれらを集約します。)

関連する問題