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


212

私はGithubリポジトリを作成したばかりで、.gitignoreファイルの目的が何か疑問に思っていました。最初は作成せずに作成しましたが、ほとんどのリポジトリに作成されているため、追加しました。持っている必要がありますか?私はそれを無視できますか、それとも用途がありますか?少し調べてみましたが、具体的な説明はありませんでした。

回答:


175

.gitignore無視するファイル(またはパターン)をgitに指示します。通常、これは、コンパイル製品、IDEが作成する一時ファイルなど、他の共同編集者には役に立たない一時ファイルを作業ディレクトリからコミットしないようにするために使用されます。

詳細については、こちらをご覧ください


したがって、github.comの新しいリポジトリに.gitignoreを作成し、次にgit initとgit addを実行するとします。ローカルコンピューター上で-まだ.gitignoreに接続されていません。そのリポジトリにはまだ接続されていないためです-これはどのように機能しますか?git commitを実行すると有効になりますか?それとも?
Xonatron 2017年

何に_._gitignore使うの?がgitignore サブディレクトリにある場合にのみ使用されますか?
サイカットチャクラボルティ2017

だからそれはローカルに残りますが、起源にプッシュされませんか?では、一部のユーザーがgithub repoをダウンロードした場合、その秘密ファイルも一緒にダウンロードされますか?
Zaveriの2018年

無視とはどういう意味ですか?誰が/何を/いつ無視するのですか?「無視」という単語の意味は知っていますが、Gitのコンテキストで「無視」の意味を明確に説明していません。明らかに、この用語はそれを理解する人には完全に理解可能ですが、コンテキストに固有の定義を持つすべての用語を説明する必要があることをまだ知らない人のために何かを定義するために書かれたものは何でも。
user34660

1
@ user34660無視するということは、それだけです-Gitは、ファイル内の(パターン)で指定されたファイルの変更を追跡しません.gitignore。それらを変更しても、gitは変更されたものとして表示しません。
Mureinik

42

作業ディレクトリでgitに無視させたいファイルのリストです。

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

git docsはあなたが知る必要があるすべてを教えてくれます:http : //git-scm.com/docs/gitignore


2
.DS_Storeまだプロジェクトで使用する必要がなかったので、この概念を理解していなかったと思うので、あなたのシナリオは最終的に私と共感しました。ありがとうございました。特にこのセクションに注目して、すべての異なるオペレーティングシステムを使用しているので、これを出発点として使用することになりました# OS generated files #
フェニックスリーフ2015

2
私はこのスレッドに遅れていることを知っていますが、@ AndyLesterに感謝します!私はプログラミングとGithubに関しては初心者です。このタイプの質問に対処するために書かれた回答の多くは、初心者が理解できない可能性のある用語で満たされていることがわかります(つまり、コンパイル製品、IDEが作成する一時ファイル...これらはh @ llのものです!)。ただし、Macの説明はそのエレガントなシンプルさで完璧です!
Vesuccio 2017年

21

コミットを行っているときに、誤って一時ファイルを含めたり、特定のフォルダを作成したりしたくない場合。したがって.gitignore、コミットを無視したい項目のリストを使用してください。

また、重要なの git statusgit 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

7

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

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

無視されたファイルは通常、ビルドされたアーティファクトとマシンが生成したファイルであり、リポジトリソースから派生するか、コミットしないでください。一般的な例は次のとおりです。

  • /node_modulesまたはの内容などの依存関係キャッシュ/packages
  • コンパイルされたコードのような.o.pyc、および.classファイル
  • ビルド出力ディレクトリ、など/bin/outまたは/target
  • 実行時に生成されたファイルのような.log.lockまたは.tmp
  • .DS_Storeまたはなどの隠しシステムファイルThumbs.db
  • 次のような個人用IDE構成ファイル .idea/workspace.xml

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


5

.gitignoreの主な目的–無関係なファイルなどを追加しないようにします。Git

私は特定のリポジトリに多くの個人的なメモ/落書きを持っています:それらは私にとっては役に立ちますが、他の誰にとっても役立ちません。githubにアップロードしたくないのは、読む人を混乱させるだけだからです。良い点は、これらのファイルを「無視」するようにgitに要求できることです。このアプローチの唯一のコストは、コンピューターがクラッシュした場合など、これらのメモを復元できないことです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.