2016-07-10 8 views
1

で作成したローカルのマシンからプッシュした後にリモートのgitリポジトリにあるファイルを消去するにはどうすればよいですか?サーバーにssh-ingして、ベアレポが作成されたディレクトリからgit reset --hard HEAD~1を実行しましたが、作業ツリーにないことを示すエラーメッセージが表示されます。プッシュ後にgit remoteのバイナリファイルを削除する

私の状況です。ホームネットワーク上のgitサーバーにバックアップを保存するクロスプラットフォームプロジェクトです。私はIDEファイルをソースコードとともに保存しています。したがって、IDEがインストールされている「新鮮な」マシンでリポジトリ全体をプルするには、ソリューションやワークスペースを開き、ビルドして実行します。私の注意のスパンがすべて消えていた最後の夜遅く、実行時にVisual Studioが生成する大きなバイナリファイル(〜35MB)をチェックしました(SolutionName.VC.dbSolutionName.VC.VC.opendbなど)。私は、これらのファイルがかなり遅くgit cloneを減速させることを発見しました。そのため、それらを私のリポジトリから完全に削除したいのです。

私は古いコピーをチェックアウトし、変更を再コミット/再プッシュしたいと思います。また、予防措置として、私はすでに不要なファイルを私の.gitignoreに追加しました。

答えて

2

正しいトラックにはgit reset --hard HEAD~1、 と表示されていますが、サーバーではなくクローンで実行する必要があります。 そして、あなたがこれを行った後、あなたは歴史書き換え力に-fオプションを使用して、サーバー、 にプッシュする必要があります。この後

git reset --hard HEAD~1 
git push origin master -f 

を、.gitignoreを更新し、それをコミットし、 その後、他を追加以前に誤ってコミットされたVisual Studioファイルの変更はありません。 最後にコミットしてもう一度押すと、 の関連する変更がもう一度存在するはずです。 であり、クローニングが再び高速になるはずです。

+0

完全に働いた。どうもありがとうございました! –

-1
git rm filename 
git commit 
git push 

を実行する必要があります。これにより、ローカルでもファイルが削除されますが、オンラインで使用したくないファイルに対しては使用しないでください。

+0

これはリポジトリから消去しないので、現在のバージョンから削除するだけです。リポジトリには持ち運びに負担がかかります。 – DavidN

関連する問題