Зачем мне нажимать, если я работаю один в локальном хранилище?

21

Я взаимодействую с Git через GitHub для Windows , что забавно, поскольку я никогда не перенесу свой репозиторий в GitHub. Я работаю над этим один, и он предназначен для использования только мной. Я заметил, что мои коммиты перечислены в разделе «несинхронизированные коммиты» и в разделе «история» написано «нет коммитов». Что подводит меня к вопросу, чего я добьюсь толканием, кроме моих коммитов, перечисленных в «истории»?

Моше Рева
источник
14
Есть один существенный недостаток понимания в вопросе, на который стоит обратить внимание: если вы ничего не нажимали удаленно, вся ваша работа находится в локальном репозитории на диске. Потерять свою машину, потерять все, что ты когда-либо делал.
Ларс Виклунд

Ответы:

40

Вы технически правы - не нужно настаивать, если вы не делитесь кодом с кем-либо.

Опять же, ваш ноутбук имеет жесткий диск, сделанный по самой низкой цене. Ваш дом может сгореть до того, как выйдет из строя жесткий диск. Возможно, вы захотите посмотреть на свой код удаленно. Или даже поделиться им с кем-то.

Теперь, с Github, они требуют, чтобы все было публично, или вам нужно платить за частные репозитории. Так что, если вы хотите сохранить это при себе, вы можете проверить bitbucket, который позволит вам делать git, но также имеет бесплатные частные репозитории.

Другой вариант - сохранить ваш git-репозиторий где-нибудь, для которого резервное копирование выполняется удаленно. Но в этом есть несколько преимуществ, а не использование облачного провайдера SCM.

Уайетт Барнетт
источник
BitBucket предлагает практически неограниченное количество частных репо бесплатно .
Есть много причин, чтобы подтолкнуть. Рабочий процесс действительно не так сильно меняет. Вы работаете, фиксируете, фиксируете, фиксируете, завершаете рабочий процесс и нажимаете ...
Rig
7

Есть еще одна причина, по которой вы хотите подтолкнуть к репо (даже если она, так или иначе, локальная): рабочие станции .

Я не знаю о вас, но я работаю на 4 разных компьютерах (1 ПК дома, 1 ноутбук, 1 офисный ПК и 1 офисный ноутбук), и внесение изменений в правильно настроенный сервер Git на сервере моей компании делает синхронизацию быстрой и безболезненный. Поскольку Git - это DVCS, это дает преимущество: это не только резервные копии, но все различные кодовые базы, над которыми я работаю, могут быть легко объединены, проверены и проанализированы.

Он может быть локальным, если, например, ваш домашний компьютер является «сервером» (или источником), а у вас есть домашний ноутбук - таким образом, вы можете легко поддерживать синхронизацию.

Sidenote : Люди часто говорят: «Я бы лучше использовал Dropbox (или любой другой сервис синхронизации)». Огромное количество объектов, которые есть в репозитории Git, делает использование Dropbox таким смешным. Это вариант, но я бы не сказал хороший.

AeroCross
источник
+1, я бы точно так же поступил в вашем случае. Что делать, если вы забыли нажать дома и сейчас на работе?
Моше Рева
2
@Zippoxer Сосредоточьтесь на другой задаче и объединитесь позже.
bytebuster
Точно, что сказал @bytebuster. Это красота DVCS! (Хотя, с достаточным количеством практики, вы не забудете снова!)
AeroCross
В качестве альтернативы: Работайте над сайд / хобби проектом, чтобы расслабиться или исследовать новые идеи и т. Д. :-)
Иоганнес
6

Как распределенный SCM, git различает понятия «сделать снимок рабочей копии» (commit) и «sync репозитории» (push / pull / fetch).

Если у вас есть только один локальный клон вашего хранилища, то нет смысла выдвигать его. Тем не менее, с GitHub, вы делаете еще один клон (один на GitHub), и толкая изменения там имеет по крайней мере одно преимущество: резервное копирование. Если ваш компьютер умирает, у вас все еще есть все на github.

Конечно, это не основная цель github; github предназначен для совместного использования кода, поэтому, если ваш проект находится на github, вы можете разрешить другим пользователям извлекать из него данные, клонировать ваш проект, выполнять запросы на извлечение от своих клонов или даже предоставлять доверенным другим пользователям принудительный доступ к вашему хранилищу.

Еще одна причина для подталкивания, если вы используете несколько локальных клонов. Это может быть полезно для разных вещей: например, вы можете захотеть работать в двух разных ветвях одновременно или вы можете попробовать разрушительные операции в вашем хранилище; если все работает как задумано, вы сохраняете измененный клон (или откладываете изменения обратно в исходное хранилище), но если дела идут на юг, вы можете просто удалить испорченный клон и вернуться к исходному (который все еще остается неизменным) ,

Некоторые люди даже используют git для развертывания: рабочая версия также является git-репозиторием, а обновление до более новой версии - это выборка и проверка (очевидно, это работает, только если вам не нужен шаг сборки). Я бы не рекомендовал это для серьезных вещей, но для маленьких вещей это простое и прагматичное решение.

tdammers
источник