1 つのコミットにすべての作業がない場合は、git push部分的にコミットできます。
使用git logすると、履歴を「ウォーク」し、いくつかのコミットをチェックしてリモートにプッシュできます。まあ言ってみれば:
$ git log --oneline master
$ git checkout abcabc123123 # 10th commit in history
$ git push origin HEAD:master
$ git checkout bcdef145325 # 30th commit in history
$ git push origin HEAD:master
等々...
あなたのステップが何回コミットしなければならないかは、試行と失敗のタスクになります - それはあなたのコミットのサイズに依存します。
履歴がない場合は、ファイル/フォルダーごとに個別のコミットを作成し (ファイルサイズで関連付けるのが良い考えだと思います)、push前に述べたようにそれらを作成し、すべてのコミットを 1 つのコミットにまとめることができます。
$ git checkout master
$ git reset acbacbad142 # hash of first commit
$ git commit --ammend
$ git push -f origin master
reset+commit --ammendを使用して単一のコミットですべての変更をリベースしpush -f、リモート ブランチをリライトします。ファイル ( blobgit 用語では s) は既にアップロードされているため (アップロードされる予定であってtreeも)、それほど時間はかかりません。履歴を書き換えているときは、競合を避けるために、短いプッシュを開始してから押しつぶされたコミットをプッシュするまでの間に、誰もリモートからクローン/フェッチしないようにしてください。