Как работать с другим человеком на одной ветке в Git? - PullRequest
4 голосов
/ 11 октября 2010

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

Может ли кто-нибудь указать мне лучшее решение?

Ответы [ 3 ]

3 голосов
/ 17 марта 2011

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

Что-то вроде

  1. git remote add файл сотрудника: //// coworkersComputer / path / to / repo
  2. сотрудник git fetch
  3. gitcheckout --track coworker / topic-branch

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

Ваш коллега должен настроить ваш компьютер аналогично:

  1. git remote add yourRepofile: ////..
  2. git fetch yourRepo
  3. git branch --set-upstream topic-branch yourRepo / topic-branch

Хорошая вещьЭто означает, что вы можете работать в полной изоляции, не причиняя неприятностей другим коллегам.Вы уже настроили друг друга как пульты, поэтому 1. нужен только один раз.2 и 3. требуется только в том случае, если вы хотите настроить новую тему для работы.

1 голос
/ 11 октября 2010

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

Сервер непрерывной интеграции, такой как Integrity ( www.integrityapp.com ), должен помочь.

0 голосов
/ 12 октября 2010

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

Решением будет использование только git fetch, а затем либо git merge origin/master или git rebase origin/master (замените master на фактическое имя ветви) впоследствии, в зависимости от того, как вы хотите, чтобы история выглядела.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...