git branch ohne Geschichte
Mein git-repo enthält vertrauliche Kennwörter, die aus Gründen außerhalb meiner Kontrolle, die nicht entfernt werden kann jetzt. Gerade jetzt ist es alles OK, da dieses repo ist nur intern, aber ich wurde gebeten, zu schaffen, ein Zweig, der ist sicher zu teilen mit Partnern.
Gibt es eine Möglichkeit zum erstellen einer branch in git und dann entfernen von Dateien aus es in einer Weise, wo Sie können nicht abgerufen werden mit der log?
Scheint wie eine lange gedreht, aber dachte, ich würde bitten. Die einzige Lösung, die ich denken kann, ist, die Datei zu kopieren Baum an eine neue git-repo, ohne die sensible Datei--aber dann würde ich verlieren die Fähigkeit, merge-partner änderungen zurück zu meinem repo.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Sache, die Sie tun können, erstellen Sie eine Filiale Ihres repo, Bearbeiten Sie die Passwörter, und erstellen Sie dann eine "shallow clone" (mit der Tiefe 1) des repository, die Sie geben würde, einen Partner. Sie können patches und so weiter gegen das Klonen, aber nicht sehen können, die ganze Geschichte und kann nicht schieben Sie den repo-nirgendwo sonst. Wenn Sie nur änderungen vornehmen, dann sollte dies eine praktikable Lösung. Sie können noch akzeptieren patches von Ihnen und anwenden, um Ihre master-repository.
Sehen die
--depth
Möglichkeit,git clone
für weitere Informationen.git clone --depth 1 [email protected]:project/projectname.git
- kopieren und einfügenVerwenden filter-branch:
--index-filter
schneller sein soll als--tree-filter
für das entfernen von Dateien. 2.) wenn Sie nicht wollen, zu ändern, repository, erstellen Sie zunächst neue Niederlassung, und schreiben Sie es.git clone --depth 1 url_of_your_remote_repository
Beschränkung der flachen repository
können Sie nicht Klonen oder Holen Sie aus dem flachen repository(Das heißt, Sie können nicht machen ein neues repository mit diesem flache Kopie)
konnte Sie nicht sehen können die ganze Historie mit git log-Befehl.
Seine praktikable Lösung, Ihr partner können einige änderungen vornehmen, und stellen Sie es als "patches" und senden es an Ihr partner, wenn Sie will, dass Ihr partner sich ändert. Dann gilt, dass die patches in Ihrem aktuellen Arbeits-Baum/was auch immer Zweige, die Sie anwenden möchten.
Mehr
Ich werde einen Stich an ein paar Antworten. Lassen Sie uns annehmen, dass Sie erstellen können, ein Zweig, der nicht vertrauliche Daten enthalten. Sie cloud dann eine "shallow clone" der Branche, die nicht enthalten Geschichte und deshalb konnte man nicht ziehen, aber es konnte pull-Formular an Sie.
Die andere Sache wäre, zu Klonen, ein neues repository und die git-removal-Tool, um sensible Daten auslöschen. Dies würde eine eindeutige repository konnte nicht interagieren, außer durch patches mit dem ersten, sondern hätte die ganze Geschichte.