1004

git init新しいプロジェクトのルートで を実行しました。

次に、.gitignoreファイルを作成しました。

と入力すると、追跡されていないファイルのリストgit status.gitignoreファイルが表示されます。何故ですか?

4

19 に答える 19

1004

ファイルは.gitignoreリポジトリにある必要があるため、git status示唆されているように、実際に追加してコミットする必要があります。変更をマージできるように、リポジトリ ツリーの一部である必要があります。

したがって、それをリポジトリに追加してください。gitignored ではありません。

コミットしたくない場合は.gitignore、ファイルに追加することができます。.gitignoreただし、その場合は、ignores を.git/info/exclude.gitignore と同じように機能する特別なチェックアウト ローカル ファイルに追加することをお勧めしますが、.gitフォルダー内にあるため「git status」には表示されません。

https://help.github.com/articles/ignoring-filesも参照してください。

于 2009-04-20T07:11:45.857 に答える
286

無視されたファイルのリストを Git ツリーの外に保存したい場合は、.git/info/excludeファイルを使用できます。レポのチェックアウトにのみ適用されます。

于 2009-04-20T07:14:19.283 に答える
81

実際にファイルに行.gitignoreを入れることができ.gitignoreます。これにより、.gitignoreファイルが git によって無視されます。私は実際にこれが良い考えだとは思いません。無視ファイルはバージョン管理および追跡する必要があると思います。完全を期すためにこれを公開しているだけです。

于 2009-04-20T07:58:37.743 に答える
58

すべてのリポジトリ.gitignoreに自動的に適用されるグローバル ユーザー git ファイルを作成することもできます。これは、IDE およびエディター ファイル (Vim のファイルなど) に役立ちます。OS に合わせてディレクトリの場所を変更します。swp*~

  1. ~/.gitconfigファイルに追加します。

    [core]
    excludesfile = /home/username/.gitignore
    
  2. ~/.gitignore無視するファイル パターンを含むファイルを作成します。

  3. ドット ファイルを別のリポジトリに保存して、バックアップを作成します (オプション)。

リポジトリをコピー、初期化、または複製するたびに、グローバル gitignore ファイルも使用されます。

于 2009-06-10T07:46:20.723 に答える
52

誰かが既に.gitignoreあなたのレポに を追加しているが、それに変更を加えてそれらの変更を無視したい場合は、次の手順を実行します。

git update-index --assume-unchanged .gitignore

ソース

于 2011-02-09T20:19:07.487 に答える
37

ファイルを追加して.gitignoreコミットすると、「追跡されていないファイル」リストに表示されなくなります。

git add .gitignore
git commit -m "add .gitignore file"
git status
于 2009-04-20T06:50:37.827 に答える
20

他の誰かが私たちと同じ痛みを抱えている場合に備えて。すでにコミットされているファイルを除外したかったのです。

この投稿はもっと役に立ち ました: .git/info/exclude の操作が遅すぎます

具体的には、ファイルを無視する必要があるのは、実際にはコマンド git remove を使用することです。git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )を参照してください。

あなたは行くことによってそれをテストします

git rm --dry-run *.log
(すべてのログ ファイルを除外したい場合)

これは、実行した場合に除外されるものを出力します。

それから

あなたは行くことによってそれを実行します

git rm *.log
(または任意のファイル名パス/式)

*.log次に、ファイルに行を追加し.gitignoreます。

于 2009-09-25T03:00:21.097 に答える
17

もちろん、.gitignore ファイルは追跡されていないためステータスに表示されており、git はそれをおいしい新しいファイルとして認識しています。

ただし、.gitignore は追跡されていないファイルであるため、.gitignore に入れると git によって無視される候補です!

したがって、答えは簡単です。次の行を追加するだけです。

.gitignore # Ignore the hand that feeds!

あなたの .gitignore ファイルに!

そして、August の回答とは逆に、.gitignore ファイルがリポジトリにある必要はありません。たまたまそれが可能であり、これはしばしば便利です。これがおそらく、.gitignore が .git/info/exclude の代替として作成された理由であり、これにはリポジトリによって追跡されるオプションがありません。とにかく、.gitignore ファイルをどのように使用するかは完全にあなた次第です。

参考までに、kernel.org のgitignore(5) マンページを確認してください。

于 2009-06-11T20:01:50.900 に答える
16

まず第一に、他の多くの人がすでに言っているように、あなた.gitignoreは Git によって追跡されるべきです (したがって、無視されるべきではありません)。理由を説明しましょう。

(TL;DR:.gitignoreファイルをコミットし、グローバル.gitignoreを使用して、IDE またはオペレーティング システムによって作成されたファイルを無視します)

ご存知のように、Git は分散バージョン管理システムです。これは、(開発が異なるブランチに分岐した場合でも) 異なるバージョン間を行き来できることを意味し、複数の開発者が同じプロジェクトで作業できるようにもします。

.gitignoreスナップショットを切り替えるときに追跡することにも利点がありますが、コミットする最も重要な理由は、同じプロジェクトで作業している他の開発者とファイルを共有することです。ファイルを Git にコミットすることにより、他のコントリビューターはリポジトリのクローンを作成するときにファイルを自動的に取得する.gitignoreため、コミットしてはならないファイル (ログ ファイル、キャッシュ ディレクトリ、データベース資格情報など) を誤ってコミットしてしまうことを心配する必要はありません。など)。また、ある時点でプロジェクト.gitignoreが更新された場合、ファイルを手動で編集する代わりに、それらの変更を簡単に取り込むことができます。

もちろん、無視したいファイルやフォルダーがいくつかありますが、それらはあなたに固有のものであり、他の開発者には当てはまりません。ただし、それらはプロジェクトの.gitignore. ファイルとフォルダーを無視できる場所が他に 2 つあります。

  • オペレーティング システムまたは IDE によって作成されたファイルとフォルダーは、グローバル.gitignoreに配置する必要があります。利点は、これ.gitignoreがコンピューター上のすべてのリポジトリに適用されるため、リポジトリごとにこれを繰り返す必要がないことです。また、別のオペレーティング システムや IDE を使用している可能性があるため、他の開発者とは共有されません。
  • .gitignoreプロジェクトのにもグローバルにも属さないファイルは、で明示的なリポジトリの除外を.gitignore使用して無視できます。このファイルは他の開発者と共有されず、その単一のリポジトリに固有のものですyour_project_directory/.git/info/exclude
于 2014-07-01T10:21:57.260 に答える
15

アイデアは、プロジェクトに固有のファイルをファイルに入れ.gitignore、(既に述べたように) それをリポジトリに追加することです。たとえば.pyc.oテストスイートが作成するファイル、ログ、いくつかのフィクスチャなどです。

独自のセットアップで作成されるが、必ずしもすべてのユーザーに表示されるとは限らないファイル ( .swpvim を使用する場合のファイル、隠し ecplise ディレクトリなど) については、.git/info/exclude(既に述べたように) を使用する必要があります。

于 2009-04-20T07:55:16.173 に答える
13

次の「問題」に注意してください ディレクトリを追加したいが、それらのディレクトリ内にファイルを追加したくない場合があります。簡単な解決策は、次の内容で .gitignore を作成することです。

*

これは、ディレクトリが追加されていないことに気付くまでは正常に機能するように機能します (期待どおりにリポジトリに追加されます。その理由は、.gitignore も無視され、それによってディレクトリが空になるためです。したがって、次のようなことを行う必要があります。 :

*
!.gitignore
于 2011-07-19T12:46:58.860 に答える
9

これは、現在のディレクトリでのみ機能Gitし、リポジトリからすべてのファイルを無視できるようです。

このファイルを更新する

.git/info/exclude 

ワイルドカードまたはファイル名で

*pyc
*swp
*~
于 2009-06-09T08:17:54.573 に答える
6

すでに .gitignore をチェックインしていて、その変更を無視したい場合は、次の回答を確認してください。

次のコマンドを使用してみてください。

git update-index --assume-unchanged FILENAME_TO_IGNORE

それを元に戻すには (変更をコミットしたい場合)、次を使用します。

git update-index --no-assume-unchanged

更新

現在のディレクトリの下にある「変更されていないと仮定する」ファイルを一覧表示する方法は次のとおりです。

git ls-files -v | grep -E "^[a-z]"

この-vオプションは、「変更されていないと仮定する」ファイルに小文字を使用するためです。

于 2016-10-03T23:27:21.560 に答える
4

私の場合、既存のファイルを除外したいと考えています。.gitignoreを変更するだけでは機能しません。私は次の手順に従いました:

git rm --cached dirToFile/file.php
vim .gitignore
git commit -a

このようにして、除外したいファイルをキャッシュから削除し、それを.gitignoreに追加しました。

于 2014-02-06T13:39:23.867 に答える
3

gitリポジトリのベースディレクトリに移動し、次のコマンドを実行します。

echo '\\.*' >> .gitignore

Macを使用している場合は、厄介な.DS_Storeを含め、すべてのドットファイルが無視されます。

于 2009-12-30T13:15:26.747 に答える
2

Eclipse によって作成された IDE 固有のフォルダーがおそらく NetBeans や別の IDE と同じではないという理由だけで、エンド ユーザーが Git に「.gitignore」ファイルを無視させたいと考える可能性は十分にあります。そのため、ソース コードの IDE を拮抗的に保つために、個々の開発者が異なる IDE を使用している可能性があるため、チーム全体で共有されていないカスタム git ignore を設定すると、生活が楽になります。

于 2013-03-13T03:32:07.140 に答える
1

.DS_Store厄介なファイルを無視するように設定するのに最適な場所は、.git/info/excludeファイル内であることがわかりました。

IntelliJは、gitリポジトリを設定すると、これを自動的に行うようです。

于 2012-10-05T13:30:08.307 に答える
1

.gitignore他のファイルを無視することです。git はファイルに関するものなので、これはファイルを無視することに関するものです。ただし、git はファイルを処理するため、このファイルは他のファイル名を一覧表示するメカニズムとして存在する必要があります。

それが呼び出された場合、それは.the_list_of_ignored_filesもう少し明白かもしれません。

アナロジーとは、やりたくない To Do 項目のリストです。それらをどこかにリストしない限り、ある種の「やること」リストであり、それらについてはわかりません。

于 2014-03-17T19:29:39.987 に答える