Як я можу надіслати комусь електронний лист зі сховищем git?


84

Я намагався:

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

: а потім я надсилаю по електронній пошті archive.zip, а з іншого кінця вони розпаковують archive.zip у папку. Але, спробувавши будь-які команди git, вони виявляють, що це не дає дійсного сховища git


19
Для інших, хто знаходить це: причина того, що архів git не підходить для роботи, полягає в тому, що він пакує лише дерево роботи. Це для того, щоб робити такі речі, як створення тарболу для всього вашого джерела, для розповсюдження.
Cascabel

Відповіді:


113

Ви можете використати git bundleодин електронний файл і надіслати його електронною поштою

Див. " Резервне копіювання проекту, який використовує git "

Набір Git - це лише один файл, який можна дуже легко створити та знову імпортувати, оскільки з ним можна поводитися як з іншим пультом дистанційного керування.

Отримавши, ви можете клонувати його або отримати з цього файлу.

Як уже згадувалося в " Резервне копіювання репозиторію github ", ви, мабуть, захочете, щоб у першому електронному листі було складено ваш пакет із усіма гілками:

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

Як зазначає Андреас у коментарях, нещодавно (березень 2010 р.) Скотт Чейкон написав "милу" статтю на цю тему в блозі ProGit :

Маленький пучок радості Git


3
@Zubair: так, вся історія збережена, всупереч git archive!
VonC

2
Дякую. Я зрозумів це: мерзотник первонач, а потім: GIT майстер тягнути bundle.bdl
appshare.co

6
@Zubair: роз’єднати? Ви можете просто клонувати його, щоб повернути нормальний репозиторій git. Або потягніть його в порожній репо. Що зараз я бачу, що ти зробив;)
VonC

1
Це хороший огляд того, як використовувати команду bundle та що вона робить: progit.org/2010/03/10/bundles.html
Андреас,

2
@BVengerov Посилання тепер git-scm.com/blog/2010/03/10/bundles.html
VonC

4

Як було сказано в попередній відповіді, git bundle - це шлях.

Якщо ви хочете створити пакет із використанням лише однієї гілки (я віддаю перевагу об’єднанню лише майстер) та надсилання електронною поштою, ви можете зробити щось подібне нижче:

$ git bundle create /tmp/mygitbackup.bundle master

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.