Jak mogę wysłać komuś wiadomość e-mail z repozytorium Git?

84

Próbowałem:

git archive HEAD --format=zip > archive.zip

: a potem wysyłam e-mail do archive.zip, a na drugim końcu rozpakowują archive.zip do folderu. Ale kiedy próbują jakichkolwiek poleceń git, dowiadują się, że nie tworzy to prawidłowego repozytorium git

appshare.co
źródło
19
Dla innych, którzy to znajdą: powodem, dla którego archiwum git nie jest odpowiednie do tego zadania, jest to, że pakuje się tylko do drzewa roboczego. Służy do robienia rzeczy takich jak tworzenie archiwum wszystkich źródeł w celu dystrybucji.
Cascabel

Odpowiedzi:

113

Możesz użyć git bundlei wysłać jeden plik

Zobacz „ Tworzenie kopii zapasowej projektu korzystającego z git

Pakiet git to tylko jeden plik, który można bardzo łatwo utworzyć i ponownie zaimportować, ponieważ można go traktować jak inny pilot.

Po otrzymaniu możesz go sklonować lub pobrać z tego pliku.

Jak wspomniano w sekcji „ Kopia zapasowa repozytorium github ”, prawdopodobnie będziesz chciał, aby pierwszy e-mail utworzył pakiet ze wszystkimi gałęziami:

$ git bundle create /tmp/foo-all --all

Jak wspomina Andreas w komentarzach, Scott Chacon niedawno (marzec 2010) napisał „uroczy” artykuł na ten temat na blogu ProGit :

Mały pakiet radości Git

VonC
źródło
3
@Zubair: tak, cała historia jest zapisana, w przeciwieństwie do git archive!
VonC
2
Dzięki. Rozgryzłem to: git init, a następnie: git pull bundle.bdl master
appshare.co
6
@Zubair: uwolnić to? Możesz go po prostu sklonować, aby odzyskać normalne repozytorium git. Lub wciągnij go do pustego repozytorium. Czyli, teraz widzę, co zrobiłeś;)
VonC
1
To jest dobry przegląd tego, jak używać polecenia pakietu i do czego ono służy
Andreas
2
@BVengerov Link to teraz git-scm.com/blog/2010/03/10/bundles.html
VonC
4

Jak powiedziała poprzednia odpowiedź, pakiet git jest sposobem.

Jeśli chcesz utworzyć paczkę przy użyciu tylko jednej gałęzi (wolę pakować tylko master) i wysłać ją przez e-mail, możesz zrobić coś takiego poniżej:

$ git bundle create /tmp/mygitbackup.bundle master

Manu Manjunath
źródło