2008-09-17 10 views
9

Angenommen, der Netzwerkzugriff ist sporadisch ohne zentralen Server, was wäre der beste Weg, git zu verwenden, um drei oder mehr Zweige synchron zu halten? Gibt es eine Möglichkeit, nur meine Deltas zu extrahieren, diese zu mailen und sie am anderen Ende zusammenzuführen?Git über E-Mail

Antwort

22

Während "git format-patch" und "git am" großartige Möglichkeiten sind, Patches aus nicht-git-Quellen zu verwalten, sollten Sie für Git-Repositories "git bundle" untersuchen.

"git bundle" und die Unterbefehle "create" und "unbundle" können verwendet werden, um einen Binärblob mit inkrementellen Commits zu erstellen und zu verwenden, mit dem Zweigverlauf über eine 'schwache' Verbindung über eine alternative Dateiübertragung übertragen werden kann Mechanismus (zB E-Mail, Snail-Mail, etc.).

Git-Bundles erhalten Commit-IDs, während format-patch/am nicht dazu führt, dass die Ziel-Commits nicht identisch sind (verschiedene SHA1s).

+0

Schön. Ich habe schon von den Patch-basierten Handlern gehört (siehe andere Posts), aber Git-Bundle ist etwas, was ich wirklich brauche. http://www.kernel.org/pub/software/scm/git/docs/git-bundle.html –

5

Siehe die Hauptseiten für git-format-patch und git-am. Dies ist eine der Möglichkeiten, mit denen das System ursprünglich entwickelt wurde.

2

Es gibt ein paar Werkzeuge in git Mail-Patches oder Import per Post Patches zu verwenden: git-am (anwenden Patches aus einem Postfach), git-format-patch (Vorbereitung E-Mail für den Versand), git -send-email (senden Sie eine Sammlung von Patches per Mail), etc. Mann 1 Git hat eine vollständige Liste.