Windowsでmsysgitを使用してGitのディレクトリまたはフォルダを無視するにはどうすればよいですか?
19 に答える
.gitignore
プロジェクトのディレクトリに名前の付いたファイルを作成します。ファイルにディレクトリ名を入力して(スラッシュを追加して)ディレクトリを無視します。
dir_to_ignore/
詳細については、こちらをご覧ください。
デフォルトでは.gitignore
、実際にファイル名が.gitignore.txt
.
Gitは使用しません.gitignore.txt
また、ファイルの名前を に変更することはできません.gitignore
。これは、Windows エクスプローラーが名前のないタイプ gitignore のファイルと見なすためです。
非コマンド ライン ソリューション:
ファイルの名前を「.gitignore」に変更できます。、そして「.gitignore」を作成します
ファイルとディレクトリを無視するには、主に 2 つの方法があるようです。
.gitignore
.gitignore
ファイルをフォルダーのほかにリポジトリのルートに配置し.git
ます (Windows では、実際のファイル拡張子が表示されていることを確認してから作成します(.gitignore.
末尾に空のファイル拡張子を作成するポイントがあります)) 。- グローバル構成
~/.gitignore_global
を作成して実行git config --global core.excludesfile ~/.gitignore_global
し、これを Git 構成に追加します
注:以前に追跡されたファイルは、実行することで追跡を解除できます
git rm --cached filename
リポジトリの除外- 共有する必要のないローカル ファイルの場合は、ファイル パターンまたはディレクトリをファイルに追加するだけです
.git/info/exclude
。これらのルールはコミットされていないため、他のユーザーには表示されません。詳細はこちら。
無視されるファイルのリストで例外を作成するには、この質問を参照してください。
特定のファイルまたはフォルダーを無視するように Git に指示するには、.gitignore
ファイルを作成する必要があります。
ただし、Windows エクスプローラーでは、ファイルの名前を指定する必要があります。拡張子だけでファイルを作成することはできません。トリックは、空のテキスト ファイルを作成し、コマンド プロンプトに移動して、ファイルの名前を次のように変更することです.gitignore
。
ren "New Text Document.txt" .gitignore
お気に入りのテキスト エディターでファイルを開き、無視したいファイル/フォルダー名を追加します。次のようなワイルドカードも使用できます*.txt
。
最初にが付いているWindowsエクスプローラーでファイルを作成する際にいくつかの問題が発生しました.
。
回避策は、コマンドシェルに入り、「編集」を使用して新しいファイルを作成することでした。
フォルダ内のファイルではなくフォルダを維持したい場合は、「*」をコンテンツとしてフォルダに「.gitignore」ファイルを配置するだけです。このファイルにより、Gitはリポジトリのすべてのコンテンツを無視します。ただし.gitignore
、リポジトリに含まれます。
$ git add path/to/folder/.gitignore
空のフォルダを追加すると、このメッセージが表示されます(.gitignoreは隠しファイルです)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
したがって、「-f」を使用して強制的に追加します。
$ git add path/to/folder/.gitignore -f
また、\.git\info
プロジェクトディレクトリには、実質的に同じものである除外ファイルがあります.gitignore
(私は思う)。その中で無視するファイルとディレクトリを追加できます。
Git が.gitignore
Windows でファイルを取得する際に問題が発生しました。ただし、$GIT_DIR/info/exclude
ファイルは常に機能しているようです。
ただし、このアプローチの欠点は、$GIT_DIR
ディレクトリ内のファイルがチェックインに含まれないため、共有されないことです。
ps
$GIT_DIR
は通常、名前が付けられた隠しフォルダーです。.git
問題は、作業ツリーが次のようになっていることだと思います。
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
....gitignore
あなたが説明したもので。これにより、次git status
のような出力が得られます。
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
...ファイルがまだリポジトリに追加されていない場合。index.html
(Git は、キャッシュ ディレクトリに無視されていないファイルがあることを認識しますが、ディレクトリのみを報告します。) これを修正するには、index.html
ファイルを追加してコミットしたことを確認します。
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
...そしてあなたのgit status
意志は次のようになります:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(明らかに、あなたもコミットしたいのです.gitignore
。私はこのテストケースで怠けていました。)
同様の問題がありました。私は Linux の担当者と共有リポジトリを使用して Windows ツール チェーンに取り組んでいます。
その結果、レポジトリのクローンを作成し、すぐに多数の「変更された」ファイルを作成できます。これらのファイルは、チェックインすると大混乱を引き起こします。
Windows で大文字と小文字を区別するように設定し、Git で大文字と小文字を区別しないように設定していますが、それでも失敗します (明らかに Win32 API 呼び出しで)。
ファイルを gitignore する場合、.gitignore ファイルを追跡しないように注意する必要があります。
しかし、ここで良い答えを見つけました:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html