У меня есть несколько проектов на Git, в которые я в конечном итоге хочу привлечь других. Однако сейчас только я и я очень упрощенно используем Git и GitHub: никаких веток и просто использование коммитов в качестве резервной копии моих локальных файлов. Иногда я возвращаюсь и просматриваю предыдущие версии своих файлов для справки, но мне не нужно было делать никаких откатов до этого момента, хотя я ценю возможность, если она понадобится мне в будущем.
Как единственный разработчик, какими функциями Git или GitHub я мог бы воспользоваться, что принесло бы мне пользу прямо сейчас? Каким должен быть мой рабочий процесс?
Кроме того, есть ли какие-то конкретные практики, которые мне нужно начать делать в ожидании добавления других в мои проекты в будущем?
источник
Ответы:
Конечно. Существует простая полезная практика, которую вы можете использовать, даже если у вас сейчас нет команды: создайте отдельную ветку для разработки. Идея состоит в том, что основная ветвь будет содержать только выпущенные версии кода или значительные изменения. Это могут быть легко приняты новыми разработчиками, которые присоединяются к вашему проекту.
Кроме того, ветвление полезно, даже если вы работаете в одиночку. Например, вы находите ошибку в процессе кодирования новой функции. Если вы не используете ветки, вам придется сделать и то и другое: добавить новые функции и исправить ошибку в той же ветке. Это не очень хорошо: P С другой стороны, если вы создали новую ветку для создания новой функции, вы можете просто извлечь ветку разработки, исправить ошибку и вернуть новую ветку функции.
Это лишь краткий пример того, что вы можете сделать, будучи единственным программистом. Я уверен, что должно быть больше хороших практик.
Я настоятельно рекомендую вам эту статью: успешная модель ветвления Git
источник
Я точно в этой ситуации, но я выбрал немного более сложный, но не обязательно более сложный рабочий процесс с Git.
Сначала целью было научиться работать с ним, поэтому я немного изучил его. затем вернулся к описанному выше рабочему процессу.
Через некоторое время с этим стало трудно работать, так как возникли некоторые ситуации, и это дало мне вредные привычки, которые трудно было бы сломать, когда я присоединюсь к команде.
поэтому я согласился на следующее:
Я также настраиваю учетную запись git hub, где я синхронизирую транк. Это позволило мне легко начать работать на разных компьютерах. Это было по необходимости, но позволило мне найти ошибки, которые были связаны с окружением, в котором я находился, и которого не было на других компьютерах. Так что теперь у меня есть привычка хотя бы один раз попробовать проект в другой «девственной» системе. Избавляет меня от головной боли, когда приходит время развертывания для клиента.
Сначала несколько веток казались излишними, но это ДЕЙСТВИТЕЛЬНО помогло. Я мог начать идею в ветке, поработать над ней некоторое время, и когда я начал бегать кругами, я сдался и начал другую ветку, чтобы работать над чем-то другим. Позже пришла идея, где я вернусь к полуобжаренной ветке и исследую эту идею. В целом это сделало меня НАМНОГО более продуктивным, так как я мог очень быстро проявить идеи и идеи и посмотреть, сработало ли это. Стоимость переключения веток с помощью GIT чрезвычайно низкая, что делает меня очень ловким с моей базой кода. Тем не менее, я все еще должен освоить концепцию rebase, чтобы очистить свою историю, но, поскольку я совсем один, я сомневаюсь, что мне действительно нужно. Выдвинул это как "приятно учиться".
Когда все ветвления усложнились, я исследовал опцию log, чтобы нарисовать дерево изменений и посмотреть, где какая ветвь.
Короче говоря, git не похож на SVN, CVS или (бррр) TFS. Ветвление очень дешево, и делать ошибки, которые уничтожат работу, на самом деле довольно сложно. Только однажды я потерял какую-то работу, и это было потому, что я сделал свои коммиты слишком большими (см. Дурные привычки выше). Если вы часто делаете коммиты, git будет вашим лучшим союзником.
Для меня git открыл мой разум для того, что на самом деле все о контроле над источниками. Все остальное раньше было просто попытками получить это, git - первое, что, на мой взгляд, получило это. Тем не менее, я не пробовал другие DVCS, вполне возможно, что это утверждение может быть расширено для всей семьи.
Последний совет, командная строка - твой друг. Нельзя сказать, что графические инструменты не очень хороши, скорее наоборот, но я действительно вздрогнул от мерзавца, когда спустился в командную строку и попробовал его сам. Это на самом деле очень хорошо сделано, легко следовать с очень всеобъемлющей системой помощи. Моя самая большая проблема была связана с ужасной консолью в Windows, пока я не нашел альтернативы.
Теперь я использую обе возможности: интеграцию Eclipse с Git, чтобы увидеть, что происходит в режиме реального времени, и выполнить некоторые операции, такие как diff, изучить историю файла и т. Д. И командную строку для ветвления, слияния, перемещения, получения и более сложных деревьев журналов. , некоторые базовые сценарии, и я никогда не был настолько продуктивным в отношении контроля над источниками, и у меня никогда не было такого большого контроля над своим источником.
Удачи, надеюсь, это помогло.
источник
Я хорошо разбираюсь в нескольких сложных моделях ветвления и использую некоторые на работе. Тем не менее, когда я работаю один над проектами, я делаю в точности то, что вы делаете сейчас. Я всегда могу создать ветку по факту, если мне это нужно, но я почти никогда не делаю. Работая в одиночку, у меня редко бывают исправления ошибок, которые не могут дождаться завершения моей текущей задачи. Мой совет - ознакомиться с некоторыми моделями ветвления, но нет смысла усложнять вещи, пока вам это не нужно.
источник
Для более простой модели вы можете посмотреть, что делает GitHub. «Поток GitHub» очень прост, и здесь есть отличное руководство: https://guides.github.com/introduction/flow/index.html
Резюме (из блога Скотта Чакона ):
источник