2010-12-02 6 views
0

大きなAVIファイルをダウンロードしました。私は誤って自分のローカルシステム上のgitリポジトリにダウンロードしました。いくつかのコミットをした後、私はファイルがそこにあったことを認識し、後でサーバ上のマスターにプッシュしたときに起こることを考えないでファイルを削除しました。言うまでもなく、git repoは、バージョン管理された「削除された」ファイルをサーバーにプッシュしたいと思う。削除されたファイルをgit repoでマスタにプッシュするのを完全に削除しました

ファイルの名前を覚えていないようです。私が知っているのは、.avi拡張子が付いているということだけです。私が望むのは、gitリポジトリのファイルをどのように追跡するのか、どのようにマスターにプッシュされないようにするのかに関する提案です。

git rm filename.avi 
+0

このgitリポジトリは個人的に使用しているのですか、他の人にあなたのコミットをプッシュしましたか? – Wesley

答えて

1

を削除する

欠けているものを見るのおかげで、 マシュー

0

が..

git status 

、その後は周りの検索もう少しやった、あなたは、このコマンドにそれを実行するとことがわかりましたすべての削除されたファイルを検索し、それらのファイルを削除する必要があります。

git ls-files --deleted | xargs git rm 
+0

彼は歴史からそれを噛み砕きたいと思っています。新しいコミットでそれを削除するだけではありません。 – ThiefMaster

+0

このファイルはかなり前に削除されました。 gitを使って特定のタイプのすべてのファイルを見つける方法がありますか? – mattwallace

+0

正しいです。バージョン管理されているファイルを完全に壊したいです。 – mattwallace

0

gitフィルタブランチでファイルを削除します。ファイルが追加された時点とは異なるSHA-1があることに注意してください。

0

git log --statを使用して、ファイルを追加したコミットのコミットハッシュを識別します。 --statは、各コミットで追加/削除されたファイルを確認し、aviファイルのパスを特定するのに役立ちます。これを$FILENAMEに入れてください。その後

git filter-branch --index-filter 'git rm --cached --ignore-unmatch $FILENAME' HEAD 
0

マット、

あなたはまだあなたのレポをプッシュしているし、誰もがそれを消費していますか?そうでない場合...もっと重要なことは、あなたの履歴があなた自身のものである場合は、rebaseあなたの履歴を書き換える必要があることです。のは、私は次の簡単な歴史を持つ例えばレポを持っているとしましょう:

$ git log --summary --stat 
001d888 Yet some more work (Fred - 71 seconds ago) 

file2.txt | 1 + 
1 files changed, 1 insertions(+), 0 deletions(-) 
3f74e79 Doing some more work (Fred - 2 minutes ago) 

file1.txt | 1 + 
file3.txt | 1 + 
2 files changed, 2 insertions(+), 0 deletions(-) 
8acc3d8 Adding some more files (Fred - 3 minutes ago) 

0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 file1.txt 
create mode 100644 file2.txt 
create mode 100644 file3.txt 
fb3a2e1 Just added a big ole file (Fred - 4 minutes ago) 

BigOleFile.blob | Bin 0 -> 33214460 bytes 
1 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 BigOleFile.blob 
6d0ab2b first commit (Fred - 8 minutes ago) 

0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 README 

は歴史が直前にコミットのSHAを取得書き換えるために... BigOleFile.blobはあなたの大きなファイルであることを

を想像してみて削除したいもの。この場合、それはです:

6d0ab2b

そして、あなたのgitのログが狂っ大きいが、それをフィルタリングし、まだ試合を中心にあなたにコンテキストを与えるために、次のような何かである場合:

git log --summary --stat | grep avi --context=10 

リベースを対話型オプションを使用して履歴を編集してください。

$ git rebase --interactive 6d0ab2b 

あなたはそうのようなものを得るでしょう:

pick fb3a2e1 Just added a big ole file 
pick 8acc3d8 Adding some more files 
pick 3f74e79 Doing some more work 
pick 001d888 Yet some more work 

# Rebase 6d0ab2b..001d888 onto 6d0ab2b 
# 
# Commands: 
# p, pick = use commit 
# r, reword = use commit, but edit the commit message 
# e, edit = use commit, but stop for amending 
# s, squash = use commit, but meld into previous commit 
# f, fixup = like "squash", but discard this commit's log message 
# x <cmd>, exec <cmd> = Run a shell command <cmd>, and stop if it fails 
# 
# If you remove a line here THAT COMMIT WILL BE LOST. 
# However, if you remove everything, the rebase will be aborted. 
# 

は、この場合、それは最初の行です...ファイルが追加されましたSHAを持つ行を削除します。その後、リベースセッション中にいくつかのプロンプトが表示される可能性が高いですが、それはかなりきれいになる可能性があります。確認するために、もう一度gitのログを見ると

Successfully rebased and updated refs/heads/master. 

:あなたが完了した後は、メッセージが表示されます

$ git log --summary --shortstat 
7c499bb Yet some more work (Fred - 12 minutes ago) 

1 files changed, 1 insertions(+), 0 deletions(-) 
4dfa303 Doing some more work (Fred - 13 minutes ago) 

2 files changed, 2 insertions(+), 0 deletions(-) 
2f27c1b Adding some more files (Fred - 14 minutes ago) 

0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 file1.txt 
create mode 100644 file2.txt 
create mode 100644 file3.txt 
6d0ab2b first commit (Fred - 19 minutes ago) 

0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 README 

はその後マスターする挑む:

$ git push origin master 
Counting objects: 9, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (6/6), done. 
Writing objects: 100% (8/8), 751 bytes, done. 
Total 8 (delta 2), reused 0 (delta 0) 
To [email protected]:xxxxxxxxxxx/temp.git 
    6d0ab2b..7c499bb master -> master 

あなたが見ることができるように。 ..ファイルはすべて消えてしまいました。

関連する問題