Вопросы по работе с Git - PullRequest
       11

Вопросы по работе с Git

3 голосов
/ 19 августа 2009

Существует множество руководств по командам Git, но я не видел многих, объясняющих, как разработчики фактически используют его в повседневной работе. Я понимаю основы push, pull, commit и т. Д., Но не понимаю, когда использовать ветки.

На локальном репо:

  • Следует ли создавать новую ветвь для каждого набора изменений или можно работать в основной ветке?

  • Должны ли вы создавать новый клон для каждой ветви?

  • Когда вы объединяете свои местные филиалы с вашим местным мастером?

Спасибо.

Ответы [ 4 ]

4 голосов
/ 19 августа 2009

Должны ли вы создавать новую ветку для каждого набора изменений или можно работать в основной ветке?

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

Например, если вы планируете провести существенную редизайн, охватывающий несколько файлов или работающий над ним в течение более длительного периода времени, вам определенно следует создать для него ветку темы. Особенно, если вы планируете использовать «нестабильный» коммит между ними, что приветствуется.

Тем не менее, было бы разумно работать в другой ветке большую часть времени, так как было бы сложно заранее знать, сколько работы потребуется для темы.

Должны ли вы создавать новый клон для каждой ветви?

Нет. Почему ты должен? Просто создайте новую ветку и используйте git checkout <branchname> для переключения ветвей.

Подсказка: узнайте о git stash, чтобы временно «спрятать» все локальные модификации, это очень удобно при работе с ветками.

Когда вы объединяете свои местные филиалы с вашим местным мастером?

Как только "тема" закончена, вы должны объединить ее с мастером. После этого вы можете удалить ветку темы.

Когда (и как) вы создаете удаленную ветку?

Вы можете указать, какую локальную ветку синхронизировать с какой удаленной веткой, используя git pull, git push или определив соответствующие ref s в файле .git/config.

Вам нужны удаленные ветви, если вы хотите поделиться веткой на нескольких машинах или пользователях.

3 голосов
/ 19 августа 2009

Должны ли вы создавать новую ветку для каждого набора изменений или можно работать в основной ветке?

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

Например, допустим, у меня есть простое приложение для графического калькулятора, и я хочу добавить скобки и порядок операций, но я не уверен, будет ли это работать так, как я думаю. Я бы создал новую ветку, проверяя свои изменения по ходу работы, и если мне понравится результат в конце, тогда я сливаюсь с Мастером.

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

Должны ли вы создавать новый клон для каждой ветви?

Я бы не предлагал создавать новый клон для каждой ветви, если вы не хотите проверять локальные изменения перед переключением. Но даже тогда вы можете использовать команду "git stash", чтобы сохранить изменения, пока вы переключаете ветки, выполняете работу и переключаетесь обратно.

Когда вы объединяете свои местные филиалы с вашим местным мастером?

Вы должны объединить свои локальные изменения с главной веткой, когда вы сможете успешно построить и думаете, что реализовали функцию, на которую рассчитывали. Не нарушайте основную ветвь.

Когда (и как) вы создаете удаленную ветку?

Вы создаете удаленную ветвь, создавая локальную ветвь и нажимая, пока вы проверяете эту локальную ветвь. Вам следует только нажать новую ветку, чтобы создать ее удаленно, если вы хотите создать ее резервную копию или если другие люди захотят проверить ее. Если вы просто играете с функцией локально, вы, вероятно, не хотите ее нажимать.

Вы пишете сообщение относительно файла, который вы изменили, или относительно проекта?

Относительно проекта. Сделайте ваши сообщения о коммите как можно более четкими, но попробуйте написать краткую итоговую строку, затем оставьте пустую строку и укажите подробности о вашем коммите. Git основывается на деревьях, а не на файлах, поэтому, если функция или исправление ошибки коснулись множества файлов, проверьте их все сразу с одним и тем же сообщением.

0 голосов
/ 19 августа 2009

Поскольку я всего лишь один человек, и я предпочитаю держать ограниченное количество экземпляров своей IDE открытой, я стараюсь оставить только один клон репозитория и просто изменить его содержимое.

Это означает, что мне обычно приходится запускать какую-то чистую сборку каждый раз, когда я изменяю содержимое своей проверки.

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

0 голосов
/ 19 августа 2009

Должны ли вы создавать новую ветку для каждого набора изменений или можно работать в основной ветке?

Помогает иметь разные ветви, когда разработка разных наборов функций происходит параллельно

Должны ли вы создавать новый клон для каждой ветви?

Нет. Дешевое локальное разветвление - одно из многих преимуществ разветвления.

Когда вы объединяете свои местные филиалы с вашим местным мастером?

После того, как вы завершите функции, предназначенные в ветке, объедините ее с мастером. В это время желательно клонировать его еще где. (GitHub?)

...