svnのようにgitの無視コマンドはありますか?


125

私はの新しいユーザーでgitあり、新しいプロジェクトを開始しています。無視したいドットファイルがたくさんあります。以下のためのコマンドを無視があるgitためにそこにあるようにsvn


1
gitignoreの優れた代替策:git update-index --assume-unchanged <file>stackoverflow.com
Gene Bo

回答:


136

特別なgit ignoreコマンドはありません。

.gitignore作業コピー内の適切な場所にあるファイルを編集します。次に、これ.gitignoreを追加してコミットする必要があります。そのリポジトリを複製する人は全員、それらのファイルを無視することになります。

で始まるファイル名のみが存在/するディレクトリに相対的であることに注意してください.gitignore。それ以外はすべて、サブディレクトリ内のファイルと一致します。

.git/info/excludeその1つの作業コピー内の特定のファイルを無視するように編集することもできます。.git/info/excludeファイルはコミットされませんので、これだけの作業コピーにローカルに適用されます。

で無視するパターンを含むグローバルファイルを設定することもできますgit config --global core.excludesfile。これは、同じユーザーのアカウントのすべてのgit作業コピーにローカルに適用されます。

git help gitignore詳細については、テキストを実行して読みます。


75
単純なignoreコマンドがないことは、gitチームの見落としのようです。
jcollum 2012

4
@jcollum一見するとそうなのですが、新しいコマンドを追加するコマンドにエイリアスを付けることの単純さと、1つを作成してすべてのエッジケース/問題点/テキストファイルの編集の潜在的な問題を処理する複雑さも、ユーザー。私はあなたに賛成も反対もしないので、私は葛藤を感じます。
アベリト

100

非常に便利なgit ignoreコマンドには、素晴らしいtj / git-extrasが付属しています。

以下に使用例をいくつか示します。

現在無視されているすべてのパターンをリストする

git ignore

パターンを追加

git ignore "*.log"

gitignore.ioからテンプレートの1つを追加します

git ignore-io -a rails

git-extrasはより多くの便利なコマンドを提供します。ぜひお試しください。


1
それで私がgit ignore "index.html"を使用すると、このファイルは無視されますか?
JohnAndrews、2015年

-tコマンドはまだ適用可能ですか?実行すると、-tとgit ignoreファイルに追加しようとするテンプレートが追加されます
Bynho

50

Linux / Unixでは、echoコマンドを使用して.gitignoreファイルにファイルを追加できます。たとえば.svn、すべてのフォルダを無視する場合は、プロジェクトのルートからこれを実行します。

echo .svn/ >> .gitignore

1
私はその構文を使用してこのツイートを見つけましたtwitter.com/noodl_io/status/669904872704253953
JohnAndrews '26

3
WindowsのGit Bashでは、/andのように(新しい行を作成するために)前後に「\」を追加する必要がecho /nbproject/project.properties\ >> .gitignoreありましたecho /nbproject/project.xml\ >> .gitignore
Ryan

15

ファイルを無視する方法は2つあります。

  • .gitignoreどのフォルダでも、そのフォルダのファイルで指定されているファイルは無視されます。ワイルドカードを使用できます。
  • .git/info/excludeglobal-ignoressubversions設定ファイルと同様に、グローバルな無視パターンを保持します。

6
.gitignore「/」を含まないファイル内のパターンは、Subversion のディレクトリプロパティの場合とは逆に、再帰的に(つまり、.gitignoreファイルがあるディレクトリのすべてのサブディレクトリ内で)一致することに注意してくださいsvn:ignore
JakubNarębski、2009年

6

手遅れにならないことを願っています。

Windowsを使用している場合は、次の手順で.gitignoreファイルを作成できます。

echo name_of_the_file_you_want_to_ignore.extension > .gitignore

.gitignoreを編集するには、次のコマンドを実行します

notepad .gitignore

2
すでに.gitignoreファイルがある場合は使用しないでください。上書きされます。無視するファイルを追加するには、次を使用します:echo ignore.ext >> .gitignore
TomEberhard

その通りです。.gitignoreファイルが存在しない場合にのみ使用することをお勧めします。「notepad .gitignore」を使用することをお勧めします。.gitignoreファイルがある場合はそれが開き、ない場合は作成され、メモ帳からすべてのファイルを追加できます。1行に1つのファイル/フォルダー
Nesar '11

3

リポジトリのルートに.gitignoreという名前のファイルを作成します。このファイルでは、無視したい各ファイルへの相対パスを1行で入力します。*ワイルドカードを使用できます。


2

すでに提供されている回答git ignoreを使用すると、エイリアスを使用して独自のコマンドをロールできます。これを〜/ .gitconfigファイルに追加してください:

ignore = !sh -c 'echo $1 >> .gitignore' -

または、選択した(* nix)シェルからこのコマンドを実行します。

git config --global alias.ignore '!sh -c "echo $1 >> .gitignore" -'

同様に、上記のとでgit exclude置き換えignoreてコマンドを作成できます。exclude.gitignore.git/info/exclude

(ここで回答を読んだこれら2つのファイルの違いをまだ理解していない場合は、この質問を参照してください。)


1
ここでの答えは$ 1を正しく展開します:stackoverflow.com/a/21884533/1465227
Archangel33

2

作業コピーまたはリポジトリに存在しない名前の場合:

echo /globpattern >> .gitignore

または既存のファイルの場合(shタイプのコマンドライン):

echo /$(ls -1 file) >> .gitignore   # I use tab completion to select the file to be ignored  
git rm -r --cached file             # if already checked in, deletes it on next commit

1

プロジェクトの完全な.gitignoreファイルを定義すると便利です。報酬は、およびのようなコマンドに対する便利な--allまたは-aフラグの安全な使用です。addcommit

また、Emacsによって作成された一時ファイルをカバーするなどの一般的に無視されるパターンのグローバル〜/ .gitignoreファイルを定義することを検討してください*~


1

これにはgit-extrasをインストールする必要があります。apt-getを使用してUbuntuにインストールできます。

$ sudo apt-get install git-extras

その後、git ignoreコマンドを使用できます。

$ git ignore file_name

3
Macでは、Homebrewがインストールされている場合、を実行できますbrew install git-extras
Alex Glover

0

Joe Blauのgitignore.ioを使用することもできます

Webインターフェースhttps://www.gitignore.io/

または、CLIツールをインストールすることで、端末で次のように入力するだけで簡単にすばやく実行できます。

Linux:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bashrc && source ~/.bashrc

OSX:
echo "function gi() { curl -L -s https://www.gitignore.io/api/\$@ ;}" >> ~/.bash_profile && source ~/.bash_profile

そして、gigitignore基準を必要とするすべてのプラットフォーム/環境要素を続けて入力することができます。

例!
gruntを含むノードプロジェクトで作業していて、Linuxでwebstormを使用している場合、次のように入力することができます:(
gi linux,webstorm,node,grunt > .gitignoreまったく新しいファイルを作成する)
または
gi linux,webstorm,node,grunt >> .gitignore(既存のファイルに新しいルールを追加/追加する) )

バム、行ってもいいよ

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