418 Stimmen

Exportieren eines Verstecks auf einen anderen Computer

Ich brauche eine Möglichkeit, ein gespeichertes Wechselgeld auf einen anderen Computer zu exportieren.

Auf Computer 1 habe ich

$ git stash save feature

Ich versuche, den Stash-Patch in eine Datei zu übertragen und sie dann auf einen anderen Computer zu importieren

$ git stash show -p > patch

Mit diesem Befehl erhalte ich eine Datei, die ich auf einen anderen Computer verschieben kann, auf dem dieses Repository geklont ist. Die Frage ist jedoch, wie ich es wieder als Versteck importieren kann.

9voto

KEMBL Punkte 400

Wie exportiert man Stash in SourceTree:

  1. Erstellen Sie einen neuen Zweig "StashTransfer" von einem Zweig aus, in dem Sie Ihren Stash verwenden werden

  2. Übertragen Sie Ihren Vorrat darauf und machen Sie eine Zusage

  3. Klicken Sie auf Ihren Commit und erstellen Sie daraus einen Patch, nehmen Sie die Patchdatei mit.

  4. Wechseln Sie zu einem anderen Repository, wählen Sie denselben übergeordneten Zweig, den Sie gerade in 1) verwendet haben.

  5. Aktionen / Patch anwenden, wählen Sie Modus: Modify working copy files, drücken Sie Apply Patch Sie haben nun die nicht übertragenen Änderungen des Patches in Ihrer aktuellen Arbeitsumgebung

  6. Erstellen eines neuen Stash für das aktuelle Repo

8voto

steampowered Punkte 11249

Eine weitere Möglichkeit ist rsync die .git Ordner von einem Computer auf einen anderen Computer übertragen. rsync verarbeitet nur Dateiänderungen (schneller als eine Kopie).

Ein Nachteil dieses Ansatzes ist, dass auch die Konfigurationen überschrieben werden, was möglicherweise nicht erwünscht ist, wenn Sie auf den beiden Rechnern unterschiedliche .git-Konfigurationen verwenden. Sie können dies jedoch umgehen, indem Sie Dateien mit der Option --exclude Option in rsync .

Insgesamt halte ich eine native Git-Lösung für sauberer, aber diese rsync hack könnte für jemanden, der es eilig hat und mit rsync besser vertraut ist als mit git, sehr nützlich sein.

7voto

git --no-pager stash show -p > patch

Kopiert die versteckten Änderungen in die Patchdatei

git apply path/to/the/patch/file

Wendet den Vorrat aus der Patchdatei an

Mit dem folgenden Shell-Skript können Benutzer alle Verstecke von einem Ordner in einen anderen Ordner kopieren. https://gist.github.com/senthilmurukang/29b55a0c0e8694c406991799153f3c43

6voto

pizon Punkte 41

Der Startbefehl aus dem ursprünglichen Beitrag:

git stash show -p stash@{x} > patch_file

hat bei mir nicht funktioniert (aus irgendeinem Grund wurden unbrauchbare Patch-Dateien erstellt). Stattdessen musste ich das tun:

git stash apply stash@{x}
git commit

für jeden Vorrat, den ich übertragen wollte. Dann platzierte ich das "Eltern"-Repositorium innerhalb der file:///-Reichweite des "Kind"-Repositoriums und tat Folgendes für jede Stash-Übertragung:

git fetch file:///path_to_parent_git && git cherry-pick commit_sha
git reset --soft HEAD^
git stash save my_new_stash_on_child

Das ist zwar etwas komplizierter, aber bei mir hat es geklappt.

3voto

maoanz Punkte 121

Achten Sie auch auf die lokalen Dateien, die mit der Option --binary gespeichert werden, und mehrere, die beim Export und Import gespeichert werden. Nach einigem Suchen habe ich folgendes gemacht.

überprüfen Sie alle versteckten

Git-Versteckliste

export stash by number, --option binary ist wichtig für den Export von Binärdateien

git stash show stash@{0} -p --binary > patch0

Stash importieren, in neues Repository wechseln

git apply /altes_Repository/patch0

Dann speichern Sie die lokalen Änderungen erneut.

Wiederholen Sie den Vorgang für alle Verstecke stash@{1}, ... ,stash@{n}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X