web-dev-qa-db-ja.com

Windows上のGitリポジトリ内のディレクトリを無視する

Windowsでmsysgitを使用してGitのディレクトリまたはフォルダを無視するにはどうすればよいですか?

913
sf.

プロジェクトのディレクトリに.gitignoreという名前のファイルを作成します。ファイルにディレクトリ名を入力してディレクトリを無視します(スラッシュを追加します)。

dir_to_ignore/

より多くの情報 ここ

1356
stew

デフォルトでは、ファイル名が実際には.gitignoreの場合、Windowsエクスプローラは.gitignore.txtを表示します。

Gitは.gitignore.txtを使いません

そしてExplorerはそのファイルをgitignoreという名前のファイルであるとみなしているので、ファイル名を.gitignoreに変更することはできません。

非コマンドラインソリューション:

ファイル名を変更することができます 「。gitignore。」  そしてそれは作成されます ".gitignore"
187
brainwavedave

ファイルとディレクトリを無視するには、主に2つの方法があります。

  1. .gitignore

    • .gitignoreフォルダのほかに.gitファイルをリポジトリのルートに配置する(Windowsでは、必ず 実際のファイル拡張子を参照 を確認してから.gitignore.を作成してください(最後に空のファイル拡張子を付けます)。
    • グローバル設定を~/.gitignore_globalにしてgit config --global core.excludesfile ~/.gitignore_globalを実行してこれをgit設定に追加します

    注意:以前に追跡されたファイルはgit rm --cached filenameを実行することで追跡されない可能性があります。

  2. レポ除外 - 共有する必要がないローカルファイルの場合は、ファイルパターンまたはディレクトリをファイル.git/info/excludeに追加するだけです。これらのルールはコミットされていないので、 他のユーザーには見られません more info here

[更新]無視されたファイルのリストで例外を作るには、 この質問 を見てください。

91
Vairis

Windowsエクスプローラでファイルを作成する際に問題が発生しました。初めに。

回避策はコマンドシェルに入り、 "edit"を使って新しいファイルを作成することでした。

43
sf.

特定のファイルやフォルダを無視するようにGITに指示するには、.gitignoreファイルを作成する必要があります。

しかし、Windowsエクスプローラではファイル名を指定する必要があります。拡張子だけのファイルを作成することはできません。空のテキストファイルを作成して[プロンプト]コマンドに進み、ファイル名を.gitignoreに変更します

ren "New Text Document.txt" .gitignore

今すぐあなたの好きなテキストエディタでファイルを開き、あなたが無視したいファイル/フォルダ名を追加してください。このようなワイルドカードを使うこともできます*.txt

それがあなたの質問に答えることを願っています

41
Mahes

フォルダ内のファイルではなくフォルダを維持したい場合は、 "*"を内容として "。gitignore"ファイルをそのフォルダに入れるだけです。このファイルはリポジトリからすべてのコンテンツを無視します。しかし.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
19
sensorario

Windowsでは、スラッシュを追加する必要があります。 .gitignore にある単一のディレクトリを除く

dir_to_exclude /

おそらく動作するでしょうが、ですべてのディレクトリを除外する

/

ディレクトリにスペースを含むファイル名(my file.txtなど)があると問題が発生します。Git bashはこれらのスペースをバックスラッシュ(my\ file.txtなど)でエスケープします。Gitfor Windowsは/\を区別しません。

すべてのディレクトリを除外するには、次のようにします。

** /

2つの連続したアスタリスクはディレクトリの内容を表します。

14
wortwart

\.git\info projectsディレクトリにも、事実上.gitignoreと同じものであるexcludeファイルがあります(私は思います)。その中で無視するファイルとディレクトリを追加することができます。

14
Si3

Gitでディレクトリ全体を無視するには、最も簡単な方法は、単に "*"を含むターゲットディレクトリ内に.gitignoreファイルを含めることです。

実例

システム例

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

目標

  • / dirB /の内容を無視します

トップレベルの.gitignore(/root/.gitignore)

  • これがあなたの標準的なgitignore情報が行くところです

無視されるディレクトリ.gitignore(/root/dirB.gitignore)

  • このファイルは単に '*'として読み込まれ、ディレクトリ自体もすべてのファイルも完全に無視されます。

それはとても簡単です:)

9
J-Dizzle

以下の内容で ".gitignore"ファイルを作成できます。

*
!.gitignore

それは私と簡単に動作します。

7

私はいくつかの問題を抱えていましたWindows上でgitignoreファイルをピックアップするためにgitを取得しています。 $ GIT_DIR/info/excludeファイルはいつもうまくいくようです。ただし、このアプローチの欠点は、$ GIT_DIRディレクトリ内のファイルがチェックインに含まれず、したがって共有されないことです。

(p.s. $ GIT_DIRは通常.gitという名前の隠しフォルダです)

7
Jason

それ以外のすべてが失敗する ファイルを編集してみてください

/.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"と "compile"を追加しました。

6
Xedret

念のため、サブフォルダを除外する必要がある場合は、ワイルドカード**を使用して、任意のレベルのサブディレクトリを除外できます。

**/build/output/Debug/
6
Eat at Joes

私の問題はあなたの作業ツリーが以下のようであることだと思います。

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/

... if 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もコミットしたいのですが、私はこのテストケースに怠けていました。)

5
Mark Longair

UNIXの場合

touch .gitignore

Windowsの場合

echo > .gitignore

端末でこれらのコマンドを実行すると、現在の場所に.gitignoreファイルが作成されます。

次に、このメモの.gitignoreファイルに情報を追加します(たとえばNotepad ++を使用)。どのファイルまたはフォルダを無視するかを指定します。変更を保存してください。それでおしまい :)

より多くの情報: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

4
fvolodimir

WindowsとMacでは、カレントディレクトリのFlower_Data_Folderという名前のフォルダを無視したい場合は、次のようにします。

echo Flower_Data_Folder >> .gitignore

Data.txtという名前のファイルの場合

echo data.txt >> .gitignore

そのパスが "Data/passwords.txt"のような場合

echo "Data/passwords.txt" >> .gitignore。

3
Olusola Omosola

私は同様の問題を抱えていた、私はLinuxの人たちとの共有レポジトリでwindowsツールチェーンに取り組んでいて、彼らは喜んで与えられたフォルダーに同じ[大文字と小文字を除いて]名前でファイルを作成します。

その効果は、私がリポジトリをクローンすることができて、そして私がチェックインした場合に大混乱を引き起こすであろう「修正された」ファイルをすぐに持っているということです。

私はウィンドウを大文字と小文字を区別するように設定し、大文字と小文字を無視しないようにGITを持っていますが、それはまだ失敗します(Win32 APIの呼び出しで明らかに)。

ファイルをgitignoreする場合は、.gitignoreファイルを追跡しないことを忘れないでください。

しかし、私はここで良い答えを見つけました http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

クリス

1
Chris Aaaaa