4

私は現在休暇中で、いくつかの作業を行っており、githubにコミットしてプッシュしています。ここでのインターネット接続はかなり悪く(山でのワイヤレスポイントツーポイント)、非常に定期的に切断されます。

約1週間半の間githubにプッシュできましたが、過去2日間はプッシュできませんでした。他のリポジトリに加えられた小さな変更をプッシュすることはできますが、これはかなり大きな変更だと思います。コミットを追加することで状況を悪化させています。

(Windowsでgit拡張機能を使用して)プッシュしようとすると、次のエラーが発生します。

c:\ Program Files(x86)\ Git \ bin \ git.exe push "origin" master:master完了致命的なエラー:ネットワークエラー:ソフトウェアによる接続の中止致命的:sha1ファイル''書き込みエラー:パイプの破損致命的:リモートエンド予期せずハングアップしたエラー:一部の参照を「git@github.com:plenderj/myproject.git」にプッシュできませんでした

アウトバウンドネットワークアクティビティを確認できますが、その後ドロップオフし、しばらくするとgitが文句を言います。私はおそらく今、約10〜15回プッシュしようとしました。

gitがアップロードしようとしているものを小さなチャンクに分割する方法はありますか、またはある種のdiffファイルを作成し、それらを自宅のコンピューターに適用して、そこからアップロードする方法はありますか?最悪のシナリオでは、/ src /フォルダー全体をコピーしてメモリースティックに貼り付け、自宅から実行しますが、もっと良い方法があると思わずにはいられません。助言がありますか?:)

4

2 に答える 2

3

もう一方の端でgit-format-patch使用して適用できる一連の電子メール対応パッチを作成するために使用します。git-apply

詳細については、を参照man git-format-patchしてください。

pullマスターから編集してから変更したパッチを作成するには、次の手順に従います。

git format-patch origin/master

これにより、電子メールまたはアップロードできる一連のファイルが作成されます。

コンピューターでgitの電子メールを設定している場合は、次を使用して直接電子メールを送信できます。

git send-email

オリジンでgitのメールを設定している場合は、

git am
于 2012-01-03T04:08:07.303 に答える
3

また、履歴を確認し、どこかでリビジョンを選択して、次のmasterように言うこともできます。

git push <remote> <revision>:tmp-branch

このように、gitが同じオブジェクトを2回コピーすることはないため、手動で変更を段階的にプッシュできます。その後、ファイナルはブランチgit push <remote> masterを更新します。master


別のオプションはgit bundleです。プッシュされていないコミットを含むファイルを作成するには、次のように言います。

git bundle create my.bundle origin/master..master

次に、堅牢な方法(rsync?)を使用してこのファイルを転送し、リモートリポジトリに適用できます。

git pull /path/to/my.bundle master
于 2012-01-03T08:57:00.033 に答える