Schutz von Dateien im git-Repository

9

Ich habe ein zentrales Repository mit einer Untergruppe von Dateien, die ich davor schützen möchte, dass sie von anderen Benutzern geändert werden (durch Drücken). Wenn ich diese Dateien zu .gitignore hinzufüge, würden sie nicht geklont.

Ist es möglich, alle Dateien zu klonen, aber nach dem Klonen einige von ihnen auf der Client-Seite zu .gitignore hinzufügen?

    
andrexus 29.07.2010, 06:49
quelle

4 Antworten

1

Gibt es einen bestimmten Grund, warum Git selbst die Antwort darauf sein muss?

Wie wäre es, wenn Sie die Dateien schreibgeschützt machen und als Richtlinie diktieren, dass diese Dateien nicht übertragen werden sollen?

Manchmal ist eine technologische Lösung nicht der einfachste Weg.

Wenn jemand Änderungen an diesen Dateien vornimmt, können diese Änderungen jederzeit rückgängig gemacht werden.

    
mfontani 29.07.2010 07:54
quelle
1

Sie können die Dateien im Repository speichern, sie festschreiben und dann zum .gitignore hinzufügen und sie dann vom nächsten Commit entfernen.

Sie können die Dateien immer noch direkt vor dem Festschreiben abrufen (z. B. mit etwas markieren, damit sie einfacher abgerufen werden kann), wodurch der Status der Datei erhalten bleibt, während sie im Repository nicht einfach bearbeitet werden kann .

Um auf diese Dateien zuzugreifen, nachdem Sie den Klon gezogen haben, schreiben Sie einfach eine Rake-Aufgabe, die sie für den Benutzer Ihres Repositorys holt.

    
vgoff 04.11.2012 01:14
quelle
1

Es klingt für mich wie das Problem liegt woanders, wenn Sie diese Ebene der Zugriffsbeschränkung benötigen.

Wenn Sie dies jedoch wirklich umsetzen möchten, sollten Sie Gitolite in Erwägung ziehen. Es erlaubt Ihnen, ziemlich detaillierte Zugriffsregeln zu definieren und sollte wahrscheinlich für Ihre Bedürfnisse ausreichen.

Gitolite Dokumentation: Ссылка

Sie können "virtuelle Referenzen" definieren, um den Zugriff auf Dateiebene zu steuern. Mehr dazu: Ссылка

    
jsageryd 18.03.2013 22:22
quelle
0

Ich dachte anfangs über einen Filtertreiber nach (siehe Pro Book ), was:

  • Speichern Sie den Inhalt Ihrer Dateien
  • im Clean-Schritt würde den Inhalt Ihrer Dateien wiederherstellen.

Aber das ist keine gute Lösung, da es sich bei diesen Skripten um statuslose Datei Inhalte Transformation handelt (siehe diese SO-Antwort ).

Sie können versuchen, einen Speicher- / Wiederherstellungsmechanismus in Hooks zu erzwingen (siehe die gleiche SO-Antwort), aber beachten Sie, dass es lokal zu Ihrem Repo ist (es schützt Ihre Dateien nur in Ihrem Repo, Hooks werden nicht gedrückt) / p>

Sie können auch verwenden:

%Vor%

Siehe " With git, vorübergehend eine geänderte verfolgte Datei vom Commit in der Befehlszeile ausschließen ", wiederum nur ein lokaler Schutz. Das schützt sie vor externem Push zu Ihrem Repo ("Import"), aber wenn Sie sie veröffentlichen ("exportieren"), dann kann dies auf der Client-Seite geändert werden.

    
VonC 29.07.2010 06:54
quelle

Tags und Links