GIT-.suoファイルを無視できません


84

C#で記述されたアプリケーションで、同僚とGitを使用して作業しようとしています。

.gitignoreファイルにエントリ「project1.suo」を追加しましたが、プロジェクトをコミットする必要があるたびに、Gitはファイル「project1.suo」もコミットするように指示しているようです。

次のように、.gitignoreにファイルを追加する多くの方法を試しました。

*.suo
project1.suo
c:\project\project1.suo

この問題を修正することはできません。


2
.gitignoreファイル自体がリポジトリに追加されていますか?
スティーブB

はいはリポジトリにあります
Laxedur 2012

3
ファイルが一度追加されたと思います。このファイルで明示的にgitrmを試して、コミットして、追加ファイルとして提案されているかどうかを確認してください。
スティーブB

コマンドrmを使用する方法を教えてください。試しましたが、コマンドでファイルが見つかりません
でした

@SteveB .gitignoreを有効にするために、リポジトリに追加する必要はありません。
ikke 2012

回答:


165

gitは、リポジトリに追加されたファイルを無視しません。無視したい場合は、リポジトリからファイルを削除する必要があります。

git rm --cached project1.suo
git commit -m "Delete suo file from repository"

これにより、ファイルがハードドライブに残っている間に、リポジトリからファイルが削除されます。


* .suoファイルをrmする場合、確かにそれらのファイルをリモートでプッシュすることはありません。このプロジェクトのクローンを作成する人に問題が発生しますか?
waqas 2016

Visual Studioクライアントを使用している場合、そこからこれを行う方法はありません。cmdシェルを使用する必要があります。ただし、シェルからrmコマンドを使用すると、取り消し線付きの.suoファイルが表示されますが、VS UIを使用して変更をコミットすると、再度表示されます。上記の両方のコマンドをコマンドラインから実行する必要があります。
Michael Blackburn

1
@Waqasいいえ、ビジュアルスタジオは彼らのために新しいファイルを作成するだけです。これは、リポジトリの一部として* .suoを除外する.gitignoreが重要な場合です。彼らがコミットするとき、彼らがチェックアウトした.gitignoreは、彼らが彼ら自身のSUOファイルをチェックインするのを防ぎます(または少なくとも彼らを落胆させます)。
Michael Blackburn

3
これは、一部の新しい人々にとっては明らかではないかもしれません。これは魅力のように機能しました。このコマンドを実行するには、.suoが配置されているフォルダー内にいる必要があります。cmd.exeで実行する必要のある最初のコマンドは、ディレクトリ「CD <.suoのルートフォルダへのフルパスを入力>」を変更し、Enterキーを押します。デフォルトでは、.suoがある.vsフォルダが表示されない場合があります。非表示ファイルはリポジトリフォルダルートで有効になっています。私のファイルにはプロジェクト名がありませんでした。拡張子だけです
。gitrm

フォルダを無視する必要があり、すでにリモートリポジトリにある場合。コマンドで-rオプションを使用します
。gitrm

3

私はいつもこの質問に戻って答えの方法を使用しますが、このファイルへの変更を無視することであるより良い解決策を見つけました。方法は

git update-index --assume-unchanged project1.suo

または

git update-index --assume-unchanged .vs/config/applicationhost.config

これを元に戻すには、-no-assume-unchangedを使用します


「致命的:ファイルWeb <ディレクトリ> / <filetoexclude>をマークできません」というメッセージが表示されます
dancerjude 2018年

これにより、誰かがファイルを更新したときに問題が発生することに注意してください。Gitはファイルを更新しようとしますが、ファイルが変更されたことに気づき、エラーメッセージを表示します。いずれにせよ、パフォーマンス上の理由でのみ使用する必要--skip-worktreeがある--assume-unchanged、よりも優れています。
ikke

-4

私も同じ問題を抱えていました。Ikkeのソリューションは役に立ちますが、.gitignoreに* .suoエントリがある場合は、それを削除することを忘れないでください。ファイルが修正されたら、

git add **/*.suo

1
OPの要件を満たすために、.suoを.gitignoreから削除しないでください。
カルター2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.