Git überschreibt kein Symlink-Verzeichnis beim Auschecken von Zweigen


7

Wie kann ich mit git ein Verzeichnis schreibgeschützt machen?

Die Situation ist - im Projekt habe ich einen Symlink zum gemeinsamen Framework. Ich möchte nicht, dass es in irgendeiner Weise überschrieben / geändert wird (nicht einmal mtime oder atime).

Wie kann ich das machen - oder sehe ich das Ding aus einer falschen Perspektive?


Beim Auschecken werden normalerweise keine nicht verfolgten Dateien im Arbeitsverzeichnis berührt. Vielleicht fehlt mir dein Standpunkt.
— Marco

Guter Punkt. Aber die Dateien müssen nachverfolgt werden , denn wenn ich sie zum Github drücke, möchte ich, dass andere sie abrufen können.
— Rok Kralj

Sie möchten den Symlink verfolgen lassen oder worauf er verweist oder auf beides? Sie können nicht verhindern, dass Personen Dateien ändern, wenn sie einen Festschreibungszugriff haben.
— Lynxlynxlynx

Antworten:


1

Für ein bestimmtes Verzeichnis ist es nicht möglich (wahrscheinlich bin ich nicht richtig). Zum Beispiel, wenn der Benutzer die folgenden Befehle ausführt

git fetch --all
git reset --hard origin/master

oder

git reset --hard HEAD
git pull

Für Details,

Die Git-Handbuchseite kann Ihnen helfen


0

Zuallererst ist diese Frage wahrscheinlich eher für Programmierer geeignet . Und ja, Sie sehen es meiner Meinung nach aus der falschen Perspektive.

Im Grunde läuft es auf das Abhängigkeitsmanagement hinaus. Sie sollten nur die häufig verwendeten Tools Ihrer Sprache / Ihres Frameworks verwenden, um Abhängigkeiten auszudrücken, anstatt andere Projekte zu kopieren / zu verknüpfen.

Wenn Sie wirklich andere Git-Repositorys benötigen / referenzieren möchten, sollten Sie diese verwenden, git submoduleanstatt Symlinks zu anderen Repositorys zu benötigen.

Je besser und sauberer Ansatz ist das Paket-Management Ihrer Verteilung für das Abhängigkeitsmanagement zu verwenden, rpmoder dpkgoder lassen Sie einfach Ihr Build - System oder Tools kümmern sich um die Abhängigkeiten, wie zum Beispiel: maven, bundler, carton, openembedded.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.