web-dev-qa-db-ja.com

正確には.gitignoreとは何ですか?

私はGithubリポジトリを作成したばかりで、.gitignoreファイルが何のためのものなのか疑問に思いました。最初は作成しないことから始めましたが、ほとんどのリポジトリには1つあるので追加しました。持っている必要がありますか?無視してもいいですか、または使用しますか。私はこの問題についていくつかの研究をしましたが、具体的な説明を見つけることができませんでした。

181
Zahachos

.gitignoreは、どのファイル(またはパターン)を無視すべきかをgitに伝えます。通常、作業ディレクトリから一時的なファイルがコミットされるのを避けるために使用されます。これは、コンパイル製品、IDEが作成する一時ファイルなど、他の共同作業者にとっては役に立ちません。

あなたは完全な詳細を見つけることができます こちら

143
Mureinik

これはあなたの作業ディレクトリでgitが無視したいファイルのリストです。

あなたがMacを使っていて、すべてのディレクトリに.DS_Storeファイルがあるとしましょう。 gitにそれらを無視させたいので、.gitignoreの行として.DS_Storeを追加します。等々。

Gitのドキュメントはあなたが知る必要があるすべてをあなたに教えてくれます: http://git-scm.com/docs/gitignore

35
Andy Lester

コミットをしているときに、誤って一時ファイルを含めたり、特定のフォルダーを作成したりすることは望ましくありません。そのため、コミットから無視したい項目を一覧表示する.gitignoreを使用してください。

また、重要なことですがgit statusは、git statusに変更されたファイルをリストアップさせたい場合に最も頻繁に使用されるコマンドの1つです。

あなたあなたのgit statusリストをきれいに見せたい不要なファイルから。例えば、私はa.cpp, b.cpp, c.cpp, d.cpp & e.cppを変更し、git statusに次のものをリストさせたいと思います。

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp

私はgit statusこのような変更されたファイルを中間のオブジェクトファイルとビルドフォルダからのファイルでリストアップしたくないです

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake

したがって、これらの中間一時ファイルをリストアップして誤ってリポジトリにコミットするためにgit statusから解放されるようにするには、すべての人が行う.gitignoreを作成する必要があります。コミットから除外したい.gitignore内のファイルとフォルダーをリストするだけでよいのです。

以下は、不要なファイルをコミットしないようにするための私の.gitignoreです

/*.cmake
/*.DS_Store
/.user
/build
12
Game_Of_Threads

Gitにチェックインさせたくないファイルがあります。 Gitはあなたの作業コピー内のすべてのファイルを3つのうちの1つとみなします。

  1. 追跡対象 - 以前にステージングまたはコミットされたファイル。
  2. 未追跡 - ステージングもコミットもされていないファイル。または
  3. ignored - Gitが明示的に無視するように指示されたファイル。

無視されたファイルは通常あなたのリポジトリソースから派生することができるかそうでなければコミットされるべきではない構築されたアーティファクトと機械生成ファイルです。一般的な例は次のとおりです。

  • /node_modulesまたは/packagesの内容などの依存関係キャッシュ
  • .o.pyc、および.classファイルなどのコンパイル済みコード
  • /bin/out/targetなどの出力ディレクトリを構築する
  • .log.lock.tmpなど、実行時に生成されるファイル
  • .DS_StoreThumbs.dbなどの隠しシステムファイル
  • .idea/workspace.xmlなどのpersonal IDE設定ファイル

無視されたファイルは、リポジトリのルートでチェックインされている.gitignoreという名前の特別なファイルで追跡されます。明示的なgit ignoreコマンドはありません。代わりに、無視したい新しいファイルがある場合は、.gitignoreファイルを手動で編集してコミットする必要があります。 .gitignoreファイルには、リポジトリ内のファイル名と照合して無視するかどうかを決定するパターンが含まれています。これが sample.gitignore ファイルです。詳しくはこちらをご覧ください link

8
imk

.gitignoreの主な目的 - パスワードなどをGitに追加しないようにする

あなたの秘密をインターネットで信用しないでください

Githubはインターネット上にあります。コードをインターネット(Githubなど)に公開する場合は、妥協の余地がないことを確認する必要があります。パスワード、セキュリティ認証情報、または機密事項。確かに、Githubにはセキュリティがありますが、そのセキュリティが危険にさらされるとどうなりますか? Githubのセキュリティが弱体化しているからといって、アプリケーションのセキュリティ全体を弱体化させたくはありません。それでは解決策は何ですか?

Gitに特定のファイルを無視させる

あなたはあなたのアプリケーションの実行に不可欠である特定のファイル(例えばパスワードや秘密)を無視するようにgitに依頼することができます。そうすれば、あなたが自分のコードをインターネットに載せても、誰かがあなたのコードを見てもなんでも起こらないでしょう。そして、もしあなたがオープンソースプロジェクトに取り組んでいるのであれば - ここでも、単に「gitにチェックイン」したくないものがいくつかあります。

.gitignoreファイル内のものはすべてGitによって無視されます。これはあなたが欲しいものです!

1
BKSpurgeon