GNU/Linux >> LINUX-Kenntnisse >  >> Linux

git:Änderungsprotokoll für Datei führen, wenn in ein anderes Repository verschoben wird

Angenommen, Sie möchten die Historie von filename.conf übertragen von einem Quell-Repository zu einem anderen empfangenden Repository. Ich denke, die Strategie, der Sie folgen möchten, ist:

  1. Erstellen Sie im Quell-Repository einen Zweig von Commits, die so umgeschrieben werden, dass sie nur filename.conf enthalten .
  2. Merge die unabhängige Zeile von Commits in einen normalen Zweig im empfangenden Repository.

Erstellen Sie auf jeden Fall Backups Ihrer Repositories, bevor Sie dies tun!

Verwenden Sie im Quell-Repository filter-branch, um den Verlauf neu zu erstellen und alles außer filename.conf zu entfernen .

git checkout -b filtered-commits
git filter-branch -f --prune-empty --tree-filter 'find . -not -name filename.conf -exec rm {} \;' filtered-commits

Dann im empfangenden Repository:

git pull path/to/source/repo

Wenn Sie auch den Pfad verschieben müssen, der filename.conf innerhalb des Repositorys befindet, müssen Sie wahrscheinlich den --subdirectory-filter verwenden Option auf git filter-branch .


Linux
  1. Verschieben von Dateien unter Linux ohne mv

  2. So bleiben Eigentums- und Dateiberechtigungen beim Kopieren von Dateien oder Verzeichnissen erhalten

  3. Shell-Skript zum Verschieben der ältesten Dateien?

  4. Wann wurde die Datei erstellt?

  5. Kodierung einer Zip-Datei?

So entfernen Sie das Git-Remote-Repository

Gewusst wie:Eine Einführung in die Verwendung von Git

Beanstalkd für CentOs 7

Wie unterscheidet sich install -c von cp

Warum verwendet rsync keine Delta-Übertragung für lokale Dateien?

Behalten Sie einen Verlauf aller Änderungen an einer Textdatei