Ich habe zwei Git-Repos, die synchron gehalten werden sollten und nicht gleichzeitig zugegriffen werden können. Einer ist bei der Arbeit und einer ist zu Hause und es ist keine Netzwerkverbindung möglich.einen Zweig von einem zum anderen kopieren Repo
Wie wird mit dieser einfachen Einrichtung verfahren?
Was ich versucht habe:
Ich habe ein Klon, der „weiß“, beide repos und existieren auf einem tragbaren Festplatte.
Lassen Sie uns sagen jemand eine Niederlassung in „Arbeit“ geschaffen hat, und ich möchte es den Repo „nach Hause“ übertragen. Wie macht man das?
Wenn ich nur ein git pull
ich folgende auf meinem Klon erhalten:
$ git branch --list --all
*master
origin/HEAD -> origin/master
origin/bugfix_component_condition_destruction_fail
origin/master
origin/remove_stoplist_copy_and_erase
F: Hat dies nur bedeuten, dass mein lokaler Klon „weiß“, dass es diese aufgelisteten Filialen irgendwo und keine wirklichen Daten auf meinem klon erwarte ich für den auch lokal vorhandenen einen namens "master"?
Es ist einfach, Master zu beiden Repos zu ziehen/schieben. Aber irgendein anderer scheint auf meinem lokalen Klon nicht zu existieren. Muss ich jeden entfernten Zweig zu einem lokalen meines Klons verfolgen und ihn dann in das andere Repo übertragen?
Q: Gibt es eine typische Art und Weise mit zwei repos zu beschäftigen, sie erhalten beide synchron, wenn auf beiden repos wird Commits geschoben werden?
Q: Gibt es einen Trick, um alle Infos und auch den Inhalt aller Remote-Niederlassungen zu bekommen.
Für mich ist es ein bisschen mysteriös was ein "Klon" eines Repos bedeutet? Es scheint kein echter Klon zu sein, sondern nur einige Metadaten und der Master-Zweig. Ist das richtig?
EDIT:
Wenn ich anfangen gitk --all
ich alle Änderungen zu sehen, die in der Branche erfolgt sind. Das sieht so aus, dass der Inhalt der Verzweigung im Klon liegt.
Aber wenn ich tun:
$git checkout -b remove_stoplist_copy_and_erase --track remotes/origin/remove_stoplist_copy_and_erase
error: Not tracking: ambiguous information for ref refs/remotes/origin/remove_stoplist_copy_and_erase
Switched to a new branch 'remove_stoplist_copy_and_erase'
Also ich habe:
$git checkout origin/remove_stoplist_copy_and_erase
$git checkout -b remove_stoplist_copy_and_erase
und jetzt schieben: $ git push --set-Upstream ex
remove_stoplist_copy_and_eraseIch fürchte, zu muss dies manuell für alle Zweige auf beiden Fernbedienungen tun, um beide synchron zu bekommen. Gibt es eine "Best Practice" für den Job?
Wenn ich eine 'git fetch - all'ow machte, um mit dem Klon danach zu handeln? Siehe meine Bearbeitung in meiner Frage. Ihre Informationen für A2 sind nicht sehr hilfreich. "Es gibt mehrere Wege" ist keine Antwort auf die Frage, wie man etwas macht. Ein Weg würde mir helfen :-) Dass es einen Weg gibt ist vor deiner Antwort ganz klar! – Klaus
@Klaus: Ich stimme zu, dass meine A2 keine hilfreiche Antwort war. Ein Weg, dies zu tun, ist mit Patches (und Entschuldigungen für die Verknüpfung von Offsite): https://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/ – TriskalJM
I bin unsicher, was du mit _deal mit dem Klon_ meinst? Der Klon sollte jetzt alle Informationen enthalten, die der ursprüngliche Repo hatte, also behandeln Sie ihn genauso wie den Remote, außer dass Sie Änderungen, die Sie im Klon vorgenommen haben, übertragen müssen. – TriskalJM