2012-03-19 15 views
8

gitで初めて遊んでいて、間違いなくすべての隠しファイルを私のコミットで追加しました。これで私の.gitignoreをセットアップし、変更をコミットしたので、 "〜"で終わるすべてのファイルはまだそこにあります。githubでmasterからファイルを削除

ローカルファイルをコミットするにはどうすればいいですか?マスターからローカルファイルを削除するにはどうすればいいですか?

+0

git rmを実行してコミットしているのと同じ意味ですか?コミットが起こったことがないような履歴を書きたいのですか? – Kaz

+0

これは可能です。コミットの前にあなたの頭をリセットし、リポジトリにプッシュして頭を作ります。レポを構成する必要がありますが、早送り以外のプッシュが可能です。また、そのレポから引き出す人は、その変更に追従するためにハードリセットを行う必要があります。コミットは参照されていないのでガベージになります。それはゴミ収集されます(45日かそれに似ていますか?) – Kaz

答えて

16

git rm --cached FILENAMEをリポジトリから削除しますが、ファイルを物理的に保持し、git add FILENAMEを使用してリポジトリにファイルを追加します。これらの変更を両方ともコミットする必要がありますgit commit

+2

私は '' --cached''フラグについて知りませんでした。それに対して+1。 :) –

+0

未追跡/無視ファイルをすべて削除する方法はありますか?手動で行う必要はありませんか? Geditは、明らかに開いたすべてのファイルに対して隠しファイルを作成します。 – danielsvane

+0

ファイルはディレクトリ構造全体に広がっていますか?そうでない場合は、tortoisegitのようなGUIユーティリティを使用して簡単に実行してください。 – Shocker

0
Here is a DOS batch file that can help: 

SET count=1 
FOR /F "tokens=*" %%G IN ('dir /s /b *.dll') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.pdb') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.txt') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.cache') DO (call :subroutine "%%G") 
FOR /F "tokens=*" %%G IN ('dir /s /b *.force') DO (call :subroutine "%%G") 
GOTO :eof 

:subroutine 
    git rm --cached %1 
    set /a count+=1 
    GOTO :eof 
関連する問題