Windowsでmsysgitを使用してGitのディレクトリまたはフォルダーを無視するにはどうすればよいですか?
.gitkeep
)を使用して、保持する必要があるディレクトリを示すためです
/
、それはそれは無視すべきそのAディレクトリを知って作るものが終わりには?
Windowsでmsysgitを使用してGitのディレクトリまたはフォルダーを無視するにはどうすればよいですか?
.gitkeep
)を使用して、保持する必要があるディレクトリを示すためです
/
、それはそれは無視すべきそのAディレクトリを知って作るものが終わりには?
回答:
.gitignore
プロジェクトのディレクトリにという名前のファイルを作成します。ファイルにディレクトリ名を入力して(スラッシュを追加して)、ディレクトリを無視します。
dir_to_ignore/
詳細はこちら。
デフォルトでは、.gitignore
実際にはファイル名がの場合、Windowsエクスプローラーが表示されます.gitignore.txt
。
Gitは使用しません .gitignore.txt
また.gitignore
、Windowsエクスプローラーは名前のないgitignoreタイプのファイルであると見なすため、ファイルの名前をに変更することはできません。
非コマンドラインソリューション:
ファイルの名前を「.gitignore」に変更できます。、「。gitignore」を作成します
".gitignore"
、拡張子を自動的に追加せずに保存します。
".gitignore."
-これは素晴らしいトリックです!私もいつも問題を抱えてい.htaccess
ました...
ファイルとディレクトリを無視するには、主に2つの方法があるようです。
.gitignore
.gitignore
ほかにリポジトリーのルートにファイルを配置し.git
ます(Windowsでは、実際のファイル拡張子が表示されていることを確認してから作成します.gitignore.
(最後に空のファイル拡張子を付けるためのポイントを使用して))。~/.gitignore_global
を作成して実行git config --global core.excludesfile ~/.gitignore_global
し、これをGit構成に追加する注:以前に追跡されたファイルは、実行することで追跡を解除できます git rm --cached filename
リポジトリ除外 -共有する必要のないローカルファイルの場合は、ファイルパターンまたはディレクトリをファイルに追加するだけです.git/info/exclude
。これらのルールはコミットされていないため、他のユーザーには表示されません。詳細はこちら。
無視されるファイルのリストで例外を作成するには、この質問を参照してください。
git rm --cached <filename>
。作成する前に存在していたリポジトリにとって絶対に重要.gitignore
Windowsエクスプローラーでファイルを作成する.
ときに、最初にいくつかの問題がありました。
回避策は、コマンドシェルに移動し、「編集」を使用して新しいファイルを作成することでした。
.
、最後にエクストラを追加して、エクスプローラが.gitignore
拡張機能であると考えなくなるようにします。次に、エントリで、拡張子のない末尾のドットが食べられて.gitignore
TL; DR が残ります。名前を付けてみてください.gitignore.
=>最終的に.gitignore
特定のファイルまたはフォルダーを無視するようにGitに指示するには、.gitignore
ファイルを作成する必要があります。
ただし、Windowsエクスプローラでは、ファイルの名前を指定する必要があります。拡張子だけのファイルは作成できません。トリックは、空のテキストファイルを作成し、コマンドプロンプトに移動して、ファイルの名前を次のように変更することです.gitignore
。
ren "New Text Document.txt" .gitignore
次に、お気に入りのテキストエディターでファイルを開き、無視するファイル/フォルダー名を追加します。次のようなワイルドカードを使用することもできます*.txt
。
type nul > .gitignore
、空のファイルを作成するには
.gitignore.
、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
Windowsでは、スラッシュを使用した余分なキャッチがあります。.gitignoreで単一のディレクトリを除外する
dir_to_exclude /
おそらく機能しますが、すべてのディレクトリを除外します
/
原因の問題あなたは(のようなスペースを含むファイル名を持つmy file.txt
ディレクトリ内):Gitのバッシュは(のようにバックスラッシュでこれらのスペースをエスケープmy\ file.txt
Windows用)とGitは区別しません/
と\
。
すべてのディレクトリを除外するには、より適切に使用します。
** /
2つの連続するアスタリスクは、ディレクトリの内容を示します。
また、\.git\info
プロジェクトのディレクトリには、.gitignore
(私が思うに)実質的に同じものである除外ファイルがあります。その中で無視するファイルとディレクトリを追加できます。
Gitでディレクトリ全体を無視するには、最も簡単な方法は、「*」だけを含むターゲットディレクトリ内に.gitignoreファイルを含めることです。
説明的な例
システム例
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
ゴール
トップレベルの.gitignore(/root/.gitignore)
無視されるディレクトリ.gitignore(/root/dirB.gitignore)
そしてそれはとても簡単です:)
ときに他のすべてが失敗したファイルを編集してみてください
/.git/info/exclude
次のように、ファイルの最後に必要なディレクトリを追加します。
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
無視するファイルとディレクトリのリストに「assets」と「compiled」のフォルダーを追加しました。
Unixの場合:
touch .gitignore
Windowsの場合:
echo > .gitignore
端末でこれらのコマンドを実行する.gitignore
と、現在の場所にファイルが作成されます。
次に、この.gitignore
ファイルに(たとえばNotepad ++を使用して)無視するファイルまたはフォルダに関する情報を追加します。変更を保存します。それでおしまい :)
詳細:.gitignore
次の内容の「.gitignore」ファイルを作成できます。
*
!.gitignore
わたしにはできる。
.gitignore
WindowsでGitがファイルを取得するのに問題がありました。$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
.gitignore
プロジェクトフォルダーにファイルを作成するだけで、フォルダー名をexに追加します。
frontend/node_modules