2010-07-23 2 views
10

Wir migrieren von Perforce zu GIT. Sicherlich gab es einige Dateien, die ich im Repository haben wollte, aber sie sollten nicht regelmäßig von einzelnen Entwicklern eingecheckt werden. Dinge wie Eclipse-Projektdateien. Jeder Entwickler könnte die ursprüngliche .project-Datei erhalten, aber dann leicht für ihre Umgebung optimieren.Markieren Sie eine Datei im GIT-Repository, die vorübergehend ignoriert wird.

Mit P4 könnte ich diese Dateien nehmen, sie in eine separate Änderungsliste stellen und sie vergessen. Die Synchronisierung würde sie nicht überschreiben und sie würden nicht festgelegt werden, wenn ich meine Standardänderungsliste festlegte.

Gibt es eine Möglichkeit, etwas ähnliches mit GIT zu tun?

würde Ich mag noch in der Lage sein, "git -a commit"

+0

mögliches Duplikat von [Maschinenspezifische Konfigurationsdateien committen] (http://stackoverflow.com/questions/1396617/committing-machine-specific-configuration-files) – Senseful

+0

Mögliches Duplikat von [Kann ich eine Datei "begehen" und sie ignorieren Inhaltsänderungen?] (https://stackoverflow.com/questions/3319479/can-i-git-commit-a-file-and-ignore-its-content-chang es) –

+0

* Ich möchte immer noch "git commit -a" * - genau das ist dein Problem, genau dort. Mit 'git' verpflichtest du generell nicht nur alles, du überprüfst, was sich mit' git status' und 'git diff' geändert hat, du entscheidest, was du hinzufügen willst (oder zu' .gitignore'), und gibst dann genau das was du brauchst ein . Dieser Workflow stellt sicher, dass Ihre Commits keine Gruft enthalten wie versehentlich eingecheckte Objekte oder temporäre Dateien usw. Sehen Sie, wenn Sie eine "Git" -Historie erstellen, wird eine Geschichte erzählt, und je besser Sie sie erzählen, desto nützlicher wird sie. Besser nicht mit hirnlosem Müll verschwenden. – cmaster

Antwort

5

Wenn Sie brauchen eine gemeinsame Basis für die (.project, .classpath, ...) können Sie:

  • Version Template-Version dieser Dateien (.project_tpl, .classpath_tpl, ...)
  • eine filter driver verwenden zu generieren, auf der Kasse, die eigentlichen Dateien (die nicht versioniert werden, und nur lokal von den Entwicklern modifiziert)

alt text

(der 'clean' Schritt während begehen würde nicht für die Vorlagen nichts tun.
Nur der ‚smudge‘ Schritt wird hier verwendet, um die privaten Dateien)

Hinweis zu erzeugen: Das ist eine leichte „mis-use“ einen Filtertreiber, die nur Dateiinhalte verarbeiten sollten, nicht zu erzeugen, neue.
Aber es könnte Sie in Ihrem Szenario helfen (sofern Ihr ‚smudge‘ Skript blind Dateien, die die Eclipse nicht überschreiben, wenn sie passieren, schon hier sein.)

+1

So konnte ich eine ziemlich dumme Schmierroutine erstellen, die .tmpl von allem mit einer .tmpl Erweiterung löscht. Ich könnte dann .project.tmpl oder configuration.xml.tmpl zu git hinzufügen und wenn Leute sie ziehen bekommen sie .project oder configuration.xml Ich denke, ich könnte auch diese generierten Dateien zu .gitignore hinzufügen und golden sein. –

+0

@Marc: das ist die Idee :) – VonC

10

Sie wahrscheinlich für

suchen

git update-index --assume-unchanged .project

+0

Gibt es eine Möglichkeit, sicherzustellen, dass dies aktiviert ist, wenn ein Benutzer das Repository klont, anstatt sich darauf zu verlassen, dass sie sich daran erinnern, es auszuführen? – Programster

+0

Nicht, dass ich mir dessen bewusst bin. –

Verwandte Themen