すべての.dllを無視するgitリポジトリ


88

タイトルはそれをすべて言います。NuGetパッケージをリポジトリに追加しようとしています。.dllファイル以外のすべてが検出されています。

gitignoreファイルには* .dllへの参照は含まれていません。.dllファイルは、リポジトリ全体のどこかにあると認識されません。info / excludeも空です。

また、運が悪かったため、リポジトリ(リモートからファイルシステムではなく、ファイルシステムからファイルシステムへ)のクローンも作成しました。この問題は、2つの異なるコンピューターでも発生します。

.dllファイルを手動で追加することもできますが、追跡する必要があります。なぜ追跡されないのですか?


26
何てgit config --get core.excludesfile言うの?
アントニーハッチキンズ2013年

2
また、gitはリビジョン間の差分を効率的に計算できないため、バイナリファイルの追跡にgitを使用することはお勧めできません。スペースがある場合、すべてのバージョンを維持すると無駄になります。DLLがオンザフライで生成される場合は、gitで無視することをお勧めします。そうでない場合-別の同期メカニズム(rsyncなど)を使用することをお勧めします。
アントニーハッチキンズ2013年

これらは私がgitに追加しようとしているNuGetパッケージです。。私がチェックインフォルダ全体のパッケージ必要があるので、私はNuGetの「パッケージの復元」機能を使用していない
ポールKnopfのが

回答:


121

これらのファイルパターンをリストしている可能性のある、~/.gitignore_globalまたは~/.gitignoreホームディレクトリにありますか?

https://help.github.com/articles/ignoring-filesを参照してください


6
彼がdllファイルで作業していることを考えると、彼はWindowsプラットフォーム上にいるので、〜はWindows 7で$ HOMEDRIVE $ HOMEPATHを意味します
Antony Hatchkins 2013年

9
これが問題であることが判明しました。ただし、このグローバル無視ファイルは追加しませんでした。それがどこからともなく出るのか、何か理由がありますか?今考えてみると、最近(アトラシアンから)SourceTreeをインストールしました。多分それは犯人ですか?
Paul Knopf

6
同じ問題がありました。その前にSourceTreeもインストールしました。したがって、SourceTreeは以前は機能していたので、SourceTreeがグローバル無視ファイルを追加したのはかなりの推測だと思います。
Andreas Krebs 2013

8
編集:OK、それはSourceTree リンク
Andreas Krebs

31
私はgit check-ignoreファイルがどこにあるかを見つけるために走らなければなりませんでした。〜/ Documents / gitignore_global.txt
Matt Cantyで

97

SourceTreeとデフォルト設定を使用すると、デフォルトですべてのDLLが無視されます... Tools => Options => Git次に「Edit File」... .dllの前に「#」を追加=>「#. dll」.. 。 保存して閉じます。

次に、WindowsエクスプローラーのパッケージフォルダーでGitBashターミナルを開き、「git add」と入力します。そして、それを機能させて、SourceTreeに戻って少し待ってください。欠けているパッケージDLLがすべて表示され、コミットしてプッシュすることができます。


13
SourceTreeユーザーの正解;)
jmpcm

グローバル無視リストについて知っていましたが、GUIでそれを見つけることができませんでした。ありがとう!
クリストフ

ツール=>オプション=> Git / Mercurialグローバル無視リスト...リストがない場合は、そこに作成してポイントできます。
KevinB

2
ファイルの場所:〜/ Documents / gitignore_global.txt
James McCormack

これはソースツリーで機能しましたが、ビジュアルスタジオで無視する方法が私のgitignoreにありませんでした。このタスクにソースツリーを使用したもの
Demodave

11

.dllファイルを手動で追加することもできますが、追跡する必要があります。なぜ追跡されないのですか?

いいえ、追加していない限り、追跡する必要はありません。すでに追加およびコミットされているファイルのみが追跡されます。それが「追跡」の意味です。

手動経由でそれらのいずれかを追加してみてくださいgit add、それはします告げるそれはそれらを無視していますなぜあなたを、そしてプロンプトあなたが使用することをgit add -fとにかくファイルを追加します。


「git add '/ packages'」を実行しましたが、.dllが検出されませんでした。次に-fを使用して追加しました。私は問題を見つけました。「* .dll」は私のグローバル無視にありました。このグローバルな無視がどこから来たかの手掛かりはありません。
Paul Knopf

2

新しいファイルを追跡するようにgitに明示的に指示する必要があります。

  1. 実行git add filenameして、ファイルをgitのインデックスに追加します。

  2. 実行git commitして、インデックスの変更をコミットします。

git status 追跡されていないファイルとディレクトリのリストも表示されます。

gitignoreによって無視されるリポジトリ内のすべてのファイルを一覧表示する場合は、次のコマンドを実行できます。

git ls-files . --ignored --exclude-standard --others

リポジトリ内のすべての追跡されていないファイルを一覧表示する場合:

git ls-files . --exclude-standard --others

2
実際に無視されたファイルを追跡するには、「git add -f」を実行する必要がありました。これは、一部のアプリケーションが知らないうちにそこに置いたグローバル無視ファイルのエントリであることがわかりました。
Paul Knopf

2

私は同様の問題に直面しました。パッケージディレクトリから.dllファイルをgitに追加できません。sourcetreeがこのファイルをグローバルgit ignore設定として自動的に追加したため、gitignore_global.txtファイルを見つけました。* .dllをgitignore_global.txtファイルから削除し、その動作を確認しました。

以下のgitignore_global.txtファイルの場所

C:\ Users \ XXXX \ Documents \ gitignore_global.txtまたはsourcetree TOOL => OPTION => GIT tabから見つけて、グローバル無視リストを見つけることができます


1

私の場合、.gitignoreファイルに.dll参照はなく、グローバルファイルもありませんでした。しかし、.gitサブディレクトリで、ms-persist.xmlというファイルを見つけました。Visual Studioのすべてのインスタンスを閉じて、不足している.dllを手動でそのファイルに追加しました。ビジュアルスタジオを再度開いたとき、.dllはチェックインする必要があると表示されていました。チェックインすると、ゴールデンになりました...


0

.gitignoreどこかにまたはそれ以上のグローバルがあります.gitignoreプロジェクトのルートを基準にして、サブディレクトリにファイルがあります。

LinuxシステムとMacOSでは、グローバルgit-ignoreがホームにある可能性が最も高い ~/

~/.gitignore_global

Windowsでは、ユーザーディレクトリにある可能性があります。ローカルユーザー(入力するECHO %USERPROFILE%か、whoamiコマンドラインで。

存在しない場合は、確かに.gitconfig代わりにa が存在します。ここでgitignoreの場所(ユーザーのDocumentsフォルダーなど)を探します。

編集git config --list --show-origin貢献しているgit-settingsとそれに対応するファイルの場所の詳細を取得するために使用します。


0

私はこの質問が非常に古いことを知っていますが、将来この質問にアクセスする可能性のある人のために追加します。上記の答えとしてグローバル無視ファイルを変更することができますが、それはすべてのgitリポジトリに影響します。代わりに、より詳細なアプローチが必要な場合は、特定のDLLまたは特定のフォルダーを、個々のプロジェクトの.gitignoresから除外できます。これにより、すべての無視設定が上書きされ、ファイルがgitによって検出および処理されます。これはより良いアプローチだと思います。

.gitignore(特定のプロジェクト用)

# Custom ignores
!*.dll
# or
!My.specific.dll

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