Windows 7 マシンで git を使用して、Server 2008 マシンの共有フォルダーにプッシュしています。これは過去6か月間完全に機能しています。しかし、昨日の時点で、リモートリポジトリにプッシュできなくなりました。試すたびに、次の結果が得られます。
$ git push
Counting objects: 39, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (23/23), 8.42 KiB, done.
Total 23 (delta 15), reused 0 (delta 0)
Unpacking objects: 100% (23/23), done.
error: Couldn't set refs/heads/my-branch
To //my-server/Code/my-project.git
! [remote rejected] my-branch -> my-branch (failed to write)
error: failed to push some refs to '//my-server/Code/my-project.git
「いくつかの参照をプッシュできませんでした」というエラーをグーグルで検索すると、最初にプルしなかったこと (私は完全に最新の状態です)、および適切な権限を持っていないこと (すべてに完全にアクセスでき、ファイルを作成/削除/編集できます) に関するさまざまな結果が得られます。エクスプローラーを介してリモートリポジトリで)。
その後、このブログ投稿http://henke.ws/post.cfm/error-failed-to-push-some-refsに出くわし、リモート リポジトリでいくつかのクリーンアップ コマンドを実行する必要があるかもしれないと述べています。そこで、リモート リポジトリで git gc を実行しました。
$ git gc
Counting objects: 3960, done.
Compressing objects: 100% (948/948), done.
Writing objects: 100% (3960/3960), done.
Total 3960 (delta 2971), reused 3942 (delta 2964)
そして、見よ、私は再び押すことができます!
$ git push
Counting objects: 39, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (23/23), done.
Writing objects: 100% (23/23), 8.42 KiB, done.
Total 23 (delta 15), reused 0 (delta 0)
Unpacking objects: 100% (23/23), done.
To //my-server/Code/my-project.git
8153afd..1385d28 my-branch -> my-branch
ただし、問題は、プッシュを実行するたびに、リモート リポジトリで gc を実行する必要があることです。そうしないと、「参照のプッシュに失敗しました」というエラーが再び表示されます。
では、なぜ私のレポはそんなに壊れたのでしょうか? 問題を完全に修正するにはどうすればよいですか?