私はちょうどgit init
私の新しいプロジェクトの根本でやった。
次に、.gitignore
ファイルを作成しました。
ここで、と入力するとgit status
、.gitignoreファイルが追跡されていないファイルのリストに表示されます。何故ですか?
how to gitignore .gitinore file
してここに来ましたが、質問と受け入れられた回答はタイトルとはあまり関係がありません。タイトルが改善される可能性があります。
私はちょうどgit init
私の新しいプロジェクトの根本でやった。
次に、.gitignore
ファイルを作成しました。
ここで、と入力するとgit status
、.gitignoreファイルが追跡されていないファイルのリストに表示されます。何故ですか?
how to gitignore .gitinore file
してここに来ましたが、質問と受け入れられた回答はタイトルとはあまり関係がありません。タイトルが改善される可能性があります。
回答:
.gitignore
それは確かに、追加され、中にコミットしなければならないように、ファイルには、リポジトリにする必要がありますgit status
示唆しています。リポジトリツリーへの変更をマージできるように、リポジトリツリーの一部である必要があります。
したがって、リポジトリに追加してください。gitignoredにしないでください。
本当に必要な場合は、コミットしたくない場合.gitignore
に.gitignore
ファイルに追加できます。ただし、その場合は.git/info/exclude
、.gitignoreと同じように機能するが、.git
フォルダー内にあるため「git status」に表示されない特別なチェックアウトローカルファイルに、ignore を追加する方がおそらく良いでしょう。
無視されたファイルのリストをGitツリーの外部に保存する場合は、.git / info / excludeファイルを使用できます。リポジトリのチェックアウトにのみ適用されます。
~/.gitignore
入れて、作業しているリポジトリでは無視されるようにします。
git update-index --assume-unchanged <file>
して、リポジトリを変更せずに変更の追跡を停止できます。これは、ローカルで変更を加える必要があるが、他の誰もがリポジトリにコミットされたものを見たくない大規模な共有プロジェクトで非常に役立ちます。blog.pagebakers.nlを
実際にファイルに行.gitignore
を入れることができ.gitignore
ます。これにより、.gitignore
ファイルはgitによって無視されます。これは良い考えではないと思います。無視ファイルは、バージョン管理および追跡する必要があると思います。私はこれを完全にするためにそこに置いています。
git rm --cached .gitignore
すべてのリポジトリに.gitignore
自動的に適用されるグローバルユーザーgit ファイルを使用することもできます。これは、IDE、エディタファイル(例えばために有用であるとのVim用のファイル)。OSに合わせてディレクトリの場所を変更します。swp
*~
~/.gitconfig
ファイルに追加:
[core]
excludesfile = /home/username/.gitignore
~/.gitignore
無視するファイルパターンを含むファイルを作成します。
ドットファイルを別のリポジトリに保存して、バックアップを作成します(オプション)。
リポジトリをコピー、初期化、または複製するときはいつでも、グローバルgitignoreファイルも使用されます。
誰かがすでに.gitignore
リポジトリにa を追加しているが、それに変更を加えてそれらの変更を無視したい場合は、次のようにします。
git update-index --assume-unchanged .gitignore
ソース。
.git/info/excludes
があります。
--assume-unchanged
ます。なぜ一方が他方より優れているのですか?
.git/info/excludes
、ファイルがすでに追跡されている場合、btw は機能しません。
.gitignore
ファイルを追加してコミットすると、「追跡されていないファイル」リストに表示されなくなります。
git add .gitignore
git commit -m "add .gitignore file"
git status
他の誰かが私たちと同じ苦痛を持っている場合に備えて。すでにコミットされているファイルを除外したかったのです。
この投稿はもっと便利でした: .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
ファイルに行を追加します。
git status
そうすれば、将来それらが表示されても混乱することはありません。
もちろん、.gitignoreファイルは追跡されていないため、ステータスに表示されます。gitは、このファイルをおいしい新しいファイルと見なしています。
ただし、.gitignoreは追跡されないファイルであるため、.gitignoreに配置すると、gitによって無視される候補になります。
したがって、答えは簡単です。次の行を追加するだけです。
.gitignore # Ignore the hand that feeds!
あなたの.gitignoreファイルに!
そして、8月の応答とは逆に、.gitignoreファイルがリポジトリにある必要はありません。ちょうどそれが起こることができ、多くの場合、便利である、こと。そして、これが.gitignoreが.git / info / excludeの代わりとして作成された理由であり、リポジトリで追跡するオプションがありません。とにかく、.gitignoreファイルの使い方は完全にあなた次第です。
参考として、kernel.orgのgitignore(5)のマンページを確認してください。
まず第一に、他の多くの人がすでに言ったように、あなた.gitignore
はGitによって追跡されるべきです(したがって無視されるべきではありません)。その理由を説明させてください。
(TL; DR:.gitignore
ファイルをコミットし、グローバル.gitignore
を使用して、IDEまたはオペレーティングシステムによって作成されたファイルを無視します)
Gitは、おそらくすでにご存じのとおり、分散バージョン管理システムです。つまり、異なるバージョン間で開発を切り替えることができ(開発が異なるブランチに分岐した場合でも)、複数の開発者が同じプロジェクトで作業することもできます。
.gitignore
スナップショットを切り替えると、追跡にもメリットがありますが、コミットする最も重要な理由は、同じプロジェクトで作業している他の開発者とファイルを共有することです。Gitにファイルをコミットすることで、他のコントリビューターは.gitignore
リポジトリを複製するときに自動的にファイルを取得するため、コミットしてはならないファイル(ログファイル、キャッシュディレクトリ、データベース資格情報など)を誤ってコミットすることを心配する必要はありません。など)。また、ある時点でプロジェクト.gitignore
が更新された場合、ファイルを手動で編集する代わりに、変更を取り込むことができます。
もちろん、無視したいファイルやフォルダがいくつかありますが、それらはあなたに固有であり、他の開発者には適用されません。ただし、これらはプロジェクトのに含めないでください.gitignore
。ファイルとフォルダーを無視できる場所は他に2つあります。
.gitignore
配置する必要があります。利点は、これ.gitignore
がコンピューター上のすべてのリポジトリーに適用されるため、すべてのリポジトリーでこれを繰り返す必要がないことです。また、別のオペレーティングシステムやIDEを使用している可能性があるため、他の開発者とは共有されません。.gitignore
やグローバル.gitignore
に属していないファイルは、で明示的なリポジトリ除外your_project_directory/.git/info/exclude
を使用して無視できます。このファイルは他の開発者と共有されず、その単一のリポジトリに固有です.gitignore
.gitignore
は、Gitでまだ追跡されていないファイルを無視する場合にのみ機能します。すでに追跡されているファイルをに追加しても、.gitignore
そのファイルへの変更をコミットすることはできます。これが可能だったとしても、.gitignore
Gitに自分自身を無視するように指示するときに、変更をどのようにコミットしますか?
すでに.gitignoreをチェックインしていて、それに対する変更を無視したい場合は、次の回答を確認してください。
次のコマンドを使用してみてください:
git update-index --assume-unchanged FILENAME_TO_IGNORE
これを元に戻すには(変更をコミットしたい場合)、以下を使用します。
git update-index --no-assume-unchanged
更新:
現在のディレクトリの下にある「変更されていない」ファイルをリストする方法は次のとおりです。
git ls-files -v | grep -E "^[a-z]"
通り
-v
のオプションは、「変わらないと仮定」ファイルのための小文字を使用します。
私の場合、既存のファイルを除外します。.gitignoreの変更のみでは機能しません。私はこれらのステップに従いました:
git rm --cached dirToFile/file.php
vim .gitignore
git commit -a
このようにして、除外したいファイルをキャッシュから削除し、それを.gitignoreに追加しました。
gitリポジトリのベースディレクトリに移動し、次のコマンドを実行します。
echo '\\.*' >> .gitignore
Macを使用している場合の厄介な.DS_Storeを含め、すべてのドットファイルは無視されます。
.gitignore
他のファイルを無視することです。gitはファイルに関するものなので、これはファイルを無視することに関するものです。ただし、gitはファイルを処理するため、このファイルは他のファイル名をリストするメカニズムとして存在する必要があります。
それが呼び出された場合、それは.the_list_of_ignored_files
もう少し明白かもしれません。
類推は、したくないTo Doアイテムのリストです。あなたがそれらをどこかにリストしない限り、あなたはそれらについて知らないであろうある種の「やること」リストです。
.gitignoreを無視することが非常に役立つ状況があると思います。たとえば、同じコードベースで作業している複数のチームや大きなチームがある場合です。その場合、特定の規則が必要です。これらの規則の1つは、gitリポジトリで無視されるものに関するものです。通常は、IDEまたはOSによって作成されたファイルやディレクトリ、一部の生成されたログなどを無視することです。
ただし、.gitignore
ファイルに従来とは異なる変更を導入する傾向がある力があります。.gitignore
ファイルには、さらに、または他のいくつかのケースで使用されるツールで、誤って、無責任な人物によって変更することができます。
これに対抗するには、次のようにします。
.gitignore
ます。ファイルはこのようにして「シール」されます。「封印された」.gitignore
ファイルは、そのチェンジャーをチームの他のメンバーに伝達することなく、ローカルでのみ変更できます。ただし、変更の「封印解除」が可能な場合は、チーム全体で変更が広く合意されている場合は、変更してから再度「封印」してください。それは意図的に行われたのではなく、誤って行うことはできません。
悲しいことに、あなたは愚かさから100%保護することはできませんが、このようにして、愚かなことが起こらないようにするためにできることはすべて実行しました。
非常に優れた専門家を擁する比較的小規模なチームの場合、これは重要ではありませんが、そのような人たちでも、心配することを1つ少なくしていただければ幸いです。
使用すると、.git/info/exclude
あなただけのミスをしないように**独自のAをカバーし、インフラストラクチャの設定については何もできないときにクールです。
何が正しいか、何が悪いかという立場から、私は.gitignoreエントリを.gitignore
ファイル内に持つことを投票します。
厄介な.DS_Store
ファイルの無視を設定するのに最適な場所はファイルにあることがわかりました.git/info/exclude
。
IntelliJは、gitリポジトリをセットアップすると、自動的にこれを行うようです。
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD