はい、それだけではありませんが、実際にはかなり簡単です。代わりに:
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
が必要です。ここにはさまざまな悪い考えがあります。おそらく、一時的なブランチを使用するためにプッシュを分割するか、マージポイントでそれらを集約します。)
質問:コミットは、そのコミット権と以前のコミット権との間の変更のみを保存することは知っていますか? 10 MBのファイルを1つ追加した10のコミットは、100 MBと同じではありません。そしてその10 MBファイルの1行を変更すると、gitはその行だけのレコードを保存します。 – Jacobm001
好奇心が...あなたのgit repoには何が大量に保存されていますか? – Jacobm001