2012-06-20 8 views
27

Ich habe ein C# Visual Studio-Projekt in einem Git-Repository. Ich möchte den Inhalt des Verzeichnisses bin/Debug ignorieren, aber nicht den Inhalt des Verzeichnisses bin/Release '. Ich habe bin/Debug zu meiner .gitignore Datei hinzugefügt, aber es scheint nicht zu funktionieren - es enthält den gesamten Inhalt des Verzeichnisses bin. Was wäre der korrekte Eintrag dafür?.gitignore und Visual Studio-Projekt: Ignore bin/Debug-Verzeichnis, aber nicht bin/Release-Verzeichnis

+0

zeigen Sie uns Ihre '.gitignore' Datei bitte – uday

+4

fügen Sie 'Debug /' zu Ihrem .gitignore hinzu – Noah

Antwort

0

Ich reparierte diese durch bin/Debug mit Debug ersetzen.

Dies würde auch die des Ignorierens der obj/Debug Verzeichnis beeinflussen haben, wollen aber ich den gesamten Inhalt des obj Verzeichnis ignorieren, so dass ich habe auch obj-.gitignore.

26

Hier ist, was wir in letzter Zeit verwendet haben, es entfernt alle nachgeschärft generierten Sachen und einige andere wichtige Dinge. Beachten Sie, dass wir unser Veröffentlichungsverzeichnis nicht festschreiben. Daher sollten Sie Release/ in Ihrem .gitignore nicht einschließen, aber um Ihre Frage zu beantworten, sollten Sie Debug/ einschließen.

/build/ 
*.suo 
*.user 
_ReSharper.*/ 
*.sdf 
bin/ 
obj/ 
Debug/ 
Release/ 
*.opensdf 
*.tlog 
*.log 
TestResult.xml 
*.VisualState.xml 
Version.cs 
Version.h 
Version.cpp 

UPDATE

Hier ist ein ziemlich umfassendes Beispiel von Github:

+2

Dies wird wahrscheinlich nicht funktionieren wegen der' bin/'ignore Direktive machen' Debug/'und' Release/'redundant. –

+0

Sie sollten es zuerst versuchen ... – Noah

+1

@ Gary.S, sollte es noch funktionieren. Die letzten Zeilen sind nur überflüssig und könnten entfernt werden. –

23

Dies geschieht in der Regel, weil die .gitignore wa s hinzugefügt, nachdem die Dateien festgeschrieben wurden. Das .gitignore sagt git an, nicht verfolgte Dateien zu ignorieren, die übereinstimmen, sobald das Commit abgeschlossen ist, funktioniert die Ignorierung nicht mehr. Eine Möglichkeit, dies zu beheben, besteht darin, den Ordner bin/debug (manuell über explorer/powershell/bash) zu entfernen und anschließend die Entfernungen zu bestätigen. Sobald dies erledigt ist, sollten die Ignoranten wie erwartet funktionieren.

  1. Entfernen von Dateien/Ordner
  2. git add -A
  3. git commit
24

Sie sollten nichts löschen müssen. Nachdem Sie die .gitignore Datei, führen Sie diesen Befehl hinzugefügt, um den Cache zu löschen, dann Bühne und begeht wieder:

git rm -r . --cached 
+1

Hinweis * dann Bühne und erneut Commit * – gidmanma

+1

Ja, wenn Sie zu spät zur Party mit Ihrem Gitignore waren, dann ist dies die richtige Lösung zu folgen ... wenn Sie wieder inszenieren und verpflichten, alle bin/obj Zeug, das war zuvor begangene werden entfernt. Funktioniert gut. – davewasthere

5

Ich weiß, es eine alte Frage, aber ich habe beschlossen, meinen Ansatz zu teilen, die sind genau ausschließen/Debug, bin/Veröffentlichung usw.

*/**/bin/Debug 
*/**/bin/Release 
*/**/obj/Debug 
*/**/obj/Release 
4

sie den folgenden Befehl für mich gearbeitet (dank "orourkedd"):

git rm -r . --cached 

ich die .gitignore Datei manuell hinzugefügt, aber es wurde nicht berücksichtigt, bis ich diesen Befehl ausgeführt habe.

Ich musste dann noch einmal begehen und alles gut, jetzt zu gehen. /bin und /obj Ordner sind jetzt ordnungsgemäß ausgeschlossen.

0

Dies funktioniert für mich:

*.exe 
*.pdb 
*.manifest 
*.cache 

Wenn Sie GitHub Desktop verwenden, wie ich es bin, können Sie einfach Rechtsklick auf die Datei, die Sie wollen, dass es ausschließen oder rechts klicken und durch Erweiterung ausschließen:

enter image description here

Dies wird automatisch eine .gitignore Datei für Sie mit dem Code wie oben generiert. Sie können GitHub Desktop hier herunterladen: GitHub Desktop for Windows 64-bit.

0

Dies kann etwas außerhalb des Themas sein, aber wenn ich anfange, ein neues Projekt zu erstellen, verwende ich normalerweise GitIgnore.IO zum Erstellen meiner ursprünglichen gitignore Datei und dann tweek ich es von dort nach meinen Bedürfnissen.