Как выбрать нежелательный коммит, не принятый другим соавтором? - PullRequest
1 голос
/ 26 января 2012

Допустим, у меня есть 4 коммита на моем GitHub, и я уже отправил пулл-запрос другому соавтору. Но на этих 4 коммитах есть 1 коммит, я не хочу, чтобы мой соавтор принял этот файл. Как мы можем сделать это? Насколько я пытаюсь, есть только кнопка, которая показывает автоматическое слияние (если нет конфликта), и мы не можем выбрать, какой коммит мы хотим принять.

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

Итак, мой главный вопрос: есть ли другой способ выбрать, какой коммит мы хотим, чтобы другой соавтор принял? Потому что иногда я не хочу, чтобы мой сотрудник сначала принимал коммит / файлы.

1 Ответ

2 голосов
/ 26 января 2012

Насколько я пытаюсь, есть только кнопка, которая показывает автоматическое слияние (если нет конфликта), и мы не можем выбрать, какой коммит мы хотим принять.

Подобным образом вы используете Git для локальной фиксации перед отправкой в ​​GitHub, ничто не мешает вашему соавтору вытянуть вашу вилку из GitHub, слить локально, а затем вытолкнуть обратно его форк слитых коммитов.

GitHub добавляет только «ярлык» для объединения запросов извлечения. Это не единственный и единственный способ сделать это.

Учитывая ваш вопрос, вы должны использовать Git. GitHub UI работает только для простого слияния. У вашего соавтора есть два эксклюзивных варианта:

  • вишня 3 из 4-х коммитов вручную
  • объединить 4 коммита, затем вернуть нежелательный коммит

Последний вариант возложит на вас бремя:

  • Создать локальную ветку, указывающую на первый коммит
  • Черри выбери два оставшихся коммита, которые тебя интересуют
  • Нажмите эту ветку и откройте новый запрос на получение от нее

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

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

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

Время от времени может случиться, что ветка темы будет слишком старой для объединения без конфликтов. Сопровождающий может потребовать от вас перебазировать вашу ветку поверх текущей HEAD и force-update ваш запрос на извлечение с этой обновленной веткой.

Этот довольно полный пост поможет вам разобраться в деталях этого рабочего процесса Git .

...