#linux #git #backup #usb-flash-drive
#linux #git #резервное копирование #usb-флэш-накопитель
Вопрос:
Я новичок в git, поэтому простите меня, если я полностью пропустил лодку. Я пишу сайты на своем ноутбуке, и в дополнение к Dropbox я хотел бы иметь резервную копию всего, что я сделал, сохраненную в другом месте. Именно тогда я узнал о git. Я понимаю, что он отслеживает все внесенные (и зафиксированные) изменения, но что происходит с реальными файлами, которые я изменил? То, о чем я спрашиваю, вероятно, лучше всего объяснить на примере.
Я настроил репозиторий git на своем ноутбуке для управления всеми изменениями, внесенными в MySite/
и все его файлы и папки ( index.php
, img/
, css/
и т.д.). Я также создал --bare
репозиторий git на флэш-накопителе. Я push
отредактировал исходное хранилище в этом месте. Я могу использовать git log
для успешного просмотра истории, но когда я получаю доступ к флэш-накопителю, я замечаю, что содержимого MySite/
там нет (или, по крайней мере, доступно для просмотра). Что вы предлагаете мне сделать, чтобы я мог работать с флэш-накопителя, а затем перенести эти изменения на ноутбук, сохраняя при этом возможность работать с ноутбука так, как я привык?
Ответ №1:
Просто пусть оба репозитория будут не пустыми. Вероятно, проще всего просто удалить голый репозиторий (поскольку, похоже, в настоящее время там нет ничего уникального), затем запустить:
git clone /laptop/project /thumbdrive/project
где /laptop/project
находится основное не-открытое хранилище, а /thumbdrive
смонтированный вами флэш-накопитель.
Теперь /thumbdrive/project
это не пустой репозиторий. Таким образом, у вас есть два открытых репозитория (что означает, что оба имеют рабочие каталоги), и вы можете свободно работать и фиксировать с ними обоими, а затем перемещать (или нажимать, если вы осторожны) между ними.
Голые репозитории используются, когда вам нужна копия, с которой вы не будете работать напрямую (например, чистая резервная копия, зеркало или сервер).
Комментарии:
1. Загрузка в открытый репозиторий потенциально опасна, и вы будете получать предупреждения об этом. Действительно важно то, что вы не хотите переходить к удаленной ветке. Обычно гораздо лучше извлекать / переносить в не-голый репозиторий. Другим вариантом было бы иметь не-чистый клон на каждой машине и использовать чистый репозиторий на флэш-накопителе в качестве центрального репозитория — подключите его к своей машине и нажимайте / извлекайте, как вы делали бы с любым центральным репозиторием.
2. @Jefromi, правда, так проще
pull
. Но нажатие — это вариант, если вы будете осторожны.3. ХОРОШО — только что попробовал, и, похоже, это сделало именно то, о чем я просил, но у меня есть один вопрос… Как вы указываете местоположение при перемещении между ними? Например, при первоначальной настройке я дал имя флэш-накопителю
flashdrive
и просто использовал командуgit push flashdrive
. Как бы мне это сделать сейчас?4. @ServAce85:
git remote add flashdrive /path/to/flashdrive/repo
(илиgit remote set-url flashdrive /path/to/flashdrive/repo
, если удаленный сервер уже существует.)5. Спасибо за огромную помощь.
Ответ №2:
Файлы есть — они находятся внутри различных папок git, но они хранятся в виде наборов различий.
Вы всегда можете извлечь набор с помощью «git pull», но вы не должны пытаться редактировать собственные файлы git — вы что-нибудь сломаете. Просто рассматривайте папку git как черный ящик и фиксируйте / извлекайте / запихивайте файлы из нее