web-dev-qa-db-ja.com

Git内の特定のファイルを無視するにはどうすればいいですか?

私はファイルHello.Javaを持つリポジトリを持っています。コンパイルすると、追加のHello.classファイルが生成されます。

Hello.classファイルに.gitignoreのエントリを作成しました。しかし、ファイルはまだ追跡されているように見えます。

GitにHello.classを無視させる方法を知りたいです。

647
Kohan95

問題は、.gitignoreが以前に追跡されなかったファイルだけを無視することです(git addによって)。ファイルをアンステージングして保持するには、git reset name_of_fileを実行します。与えられたファイルも(プッシュ後に)リポジトリから削除したい場合は、git rm --cached name_of_fileを使用してください。

724
Ondrej Slinták

新しいファイルを無視する方法

グローバル

無視したいファイルへのパスを.gitignoreファイルに追加します(そしてそれらをコミットします)。これらのファイルエントリはリポジトリをチェックアウトしている他のユーザにも適用されます。

ローカル

無視したいファイルへのパスを.git/info/excludeファイルに追加します。これらのファイルエントリはあなたのローカル作業コピーにのみ適用されます。

変更されたファイルを無視する方法(一時的)

変更されたファイルが変更されたものとしてリストされていることを無視するには、次のgitコマンドを使用します。

git update-index --assume-unchanged <file>

その無知を元に戻すには、次のコマンドを使用します。

git update-index --no-assume-unchanged <file>
184
Xman Classical

次の行を.gitignoreに追加します。

/Hello.class

これはHello.classをgitから除外します。すでにコミットしている場合は、次のコマンドを実行します。

git rm Hello.class

Gitからすべてのクラスファイルを除外したい場合は、.gitignoreに次の行を追加してください。

*.class
147
Armand

1).gitignoreファイルを作成します。そのためには、.txtファイルを作成し、拡張子を次のように変更します。

enter image description here

次に、cmdに次の行を書いて名前を変更する必要があります。

 rename git.txt .gitignore

git.txtは、作成したファイルの名前です。

その後、ファイルを開いて、追加したくないファイルをすべてリポジトリに書き込むことができます。例えば私のものはこんな感じです:

#OS junk files
[Tt]humbs.db
*.DS_Store

#Visual Studio files
*.[Oo]bj
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.sdf
*.pyc
*.xml
ipch/
obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad

#Tooling
_ReSharper*/
*.resharper
[Tt]est[Rr]esult*

#Project files
[Bb]uild/

#Subversion files
.svn

# Office Temp Files
~$*

これを入手したら、それをあなたのgitリポジトリに追加する必要があります。リポジトリのある場所にファイルを保存する必要があります。

それからgit bashに次の行を書いてください。

git config --global core.excludesfile ~/.gitignore_global

リポジトリがすでに存在する場合は、次の操作を行う必要があります。

1)git rm -r --cached .
2)git add .
3)git commit -m ".gitignore is now working"

ステップ2がうまくいかない場合は、追加したいファイルのホールルートを書く必要があります。

それが役に立てば幸い!

96

無視する:

git update-index --assume-unchanged <path/to/file>

無視を元に戻すには:

git update-index --no-assume-unchanged <path/to/file>
50
avj

追跡対象ファイルの変更を無視する/無視しないために、以下の方法を使用できます。

  1. 無視する場合:git update-index --assume-unchanged <file>
  2. 無視されたファイルを元に戻すには:git update-index --no-assume-unchanged <file>
42
kapillohakare

.gitがあるディレクトリに.gitignoreを作成します。改行で区切ってファイルをその中にリストすることができます。ワイルドカードを使うこともできます。

*.o
.*.swp
22
terminus

あなたは次のように書くべきです

*.class

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

11
KingCrunch

公式GitHubサイトから:

すでにファイルをチェックインしていて、それを無視したい場合は、後でルールを追加してもGitはそのファイルを無視しません。そのような場合は、端末で次のコマンドを実行して、まずファイルを追跡解除する必要があります。

git rm --cached FILENAME 

または

git rm --cached .
10
Mile Mijatovic

無視したいファイルを.gitignoreに追加します。

*。クラス

*。プロジェクト

* .prefs

*。プロジェクト

7
Chinmoy
5
yasouser

ファイルタイプ全体を除外するために(.gitignoreの代わりに).gitattributesを使用することもできます。このファイルは一目瞭然ですが、参考のためにここにコンテンツを貼り付けています。最後の行(* .classバイナリ)に注意してください

# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary
*.gif binary
*.ico binary
*.mo binary
*.pdf binary
*.phar binary
*.class binary
3
David Niki

ファイル "dump.rdb"についても同様の問題がありました。
このファイルを.gitignoreファイルにさまざまな方法で追加してみましたが、1つの方法しかうまくいきませんでした。

.gitignoreファイルの最後にファイル名を追加してください

注:他の場所にファイルを追加してもうまくいきませんでした。

たとえば、以下を参照してください。 https://gitlab.com/gitlab-org/gitlab-ce/raw/b3ad3f202478dd88a3cfe4461703bc3df1019f90/.gitignore

この ウェブページ は.gitignoreを扱うときに便利で時間を節約するかもしれません。

通常はgitリポジトリに保存したくない特定のファイル/フォルダ(IDE固有のフォルダや設定ファイルなど)を使用して、さまざまなIDEやオペレーティングシステム用の.gitignoreファイルを自動的に生成します。

2
Jaime Caffarel

次の行を.git/info/excludeに追加します。
こんにちは皆さん

2
Dado

既にファイルをコミットしていて、.gitignoreファイルに追加して無視しようとしているのであれば、gitはそれを無視しないので、最初に以下のことを行う必要があります。

git rm --cached FILENAME

新しくプロジェクトを始めていて、git ignoreにいくつかのファイルを追加したい場合は、以下の手順に従ってgit ignoreファイルを作成してください。

1. Navigate to your git Repo.
2. Enter "touch .gitignore" which will create a .gitignore file.
2
Savyasachi

私は--assume-unchanged.gitignoreを試しましたが、どちらもうまくいきませんでした。それらはブランチを切り替えるのを難しくし、他からの変更をマージするのを難しくします。これが私の解決策です:

I commit のとき、私は手動で リストからファイルを削除する

I pull の前、I stash 変更されたファイル。そして引っ張った後、 stash pop をします。

  1. git stash
  2. git pull
  3. gITスタッシュポップ

ステップ3は時々マージを引き起こすでしょう、そしてあなたが解決する必要がある衝突をもたらすかもしれません、それは良いことです。

これにより、チーム内の他の人と共有されていないローカルな変更を維持できます。

0
John Henckel