Git-Zweig ohne Verlauf

Lesezeit: 3 Minuten

Benutzer-Avatar
Ben K.

Mein Git-Repo enthält vertrauliche Passwörter, die aus Gründen, auf die ich keinen Einfluss habe, derzeit nicht entfernt werden können. Im Moment ist alles in Ordnung, da dieses Repo nur intern ist, aber ich wurde gebeten, einen Zweig zu erstellen, der sicher mit Partnern geteilt werden kann.

Gibt es eine Möglichkeit, einen Zweig in Git zu erstellen und dann Dateien so zu entfernen, dass sie nicht mit dem Protokoll abgerufen werden können?

Scheint wie ein langer Schuss, aber ich dachte, ich würde fragen. Die einzige Lösung, die mir einfällt, besteht darin, den Dateibaum ohne die sensible Datei in ein neues Git-Repo zu kopieren – aber dann würde ich die Möglichkeit verlieren, Partneränderungen wieder in mein Repo zusammenzuführen.

Eine Sache, die Sie tun könnten, ist, einen Zweig Ihres Repositorys zu erstellen, die Passwörter zu bearbeiten und dann einen flachen Klon (mit Tiefe 1) dieses Repositorys zu erstellen, den Sie den Partnern geben würden. Sie können Patches und so weiter gegen diesen Klon erstellen, können aber nicht den gesamten Verlauf sehen und das Repo nirgendwo anders hinschieben. Wenn sie nur Änderungen vornehmen, sollte dies eine praktikable Lösung sein. Sie können weiterhin Patches von ihnen akzeptieren und auf Ihr Master-Repository anwenden.

Siehe die --depth Option von git clone Für weitere Informationen.

  • Ich denke, diese Lösung wird für Bens Situation besser funktionieren. Es ist einfacher, den Zugriff auf Repository-Basis zu verwalten als auf Branch-Basis.

    – Apréche

    27. August 2009 um 20:38 Uhr

  • git clone --depth 1 [email protected]:project/projectname.git – Kopieren und Einfügen

    Benutzer285594

    19. März 2014 um 7:09 Uhr

Verwenden Filterzweig:

Angenommen, Sie möchten eine Datei (die vertrauliche Informationen oder eine Urheberrechtsverletzung enthält) aus allen Commits entfernen:

git filter-branch –tree-filter ‘rm filename’ HEAD

  • 1.) --index-filter sollte schneller sein als --tree-filterzum Entfernen von Dateien. 2.) Wenn Sie das Repository nicht ändern möchten, erstellen Sie zuerst einen neuen Zweig und schreiben Sie ihn neu.

    – Jakub Narębski

    27. August 2009 um 21:30 Uhr

  • Ja, es gibt eine sehr gute Diskussion der verschiedenen Techniken in der Dokumentation, auf die ich verlinkt habe

    – 1800 INFORMATIONEN

    27. August 2009 um 21:39 Uhr

git clone –depth 1 url_of_your_remote_repository

Begrenzung des flachen Repositorys

  • Sie können das flache Repository nicht klonen oder abrufen (Das bedeutet, dass Sie mit dieser flachen Kopie kein neues Repository erstellen können).

  • Sie konnten den gesamten Verlauf nicht mit dem Befehl git log anzeigen.

  • Als praktikable Lösung kann Ihr Partner einige Änderungen vornehmen und als “Patches” erstellen und an Ihren Partner senden, wenn Sie Änderungen an Ihrem Partner wünschen. Wenden Sie dann diese Patches in Ihrem aktuellen Arbeitsbaum / in allen Zweigen an, die Sie anwenden möchten.

    Mehr

Ich werde ein paar Antworten versuchen. Nehmen wir an, Sie können einen Zweig erstellen, der keine sensiblen Daten enthält. Sie cloud erstellen dann einen flachen Klon des Zweigs, der keine Geschichte enthalten würde, und daher könnten Sie nicht daraus ziehen, aber er könnte von Ihnen ziehen.

Die andere Sache wäre, ein neues Repository zu klonen und die Git-Entfernungstools zu verwenden, um sensible Daten zu löschen. Dies würde ein eigenständiges Repository schaffen, das nur durch Patches mit dem ersten interagieren könnte, aber die gesamte Historie enthalten würde.

1204960cookie-checkGit-Zweig ohne Verlauf

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy