Почему коммиты из другого запроса на включение в мой новый запрос на выборку - PullRequest
0 голосов
/ 26 июня 2018

Я довольно плохо знаком с работой в команде с git.

Я начинаю с «источника / мастера».

enter image description here

  1. Сначала я создал новую ветку feature/26062018-offline-seite_ef.

  2. Я добавил коммиты.

  3. Я проверил местное отделение master.

  4. Я слился в ветви функций (git merge feature/26062018-offline-seite_ef)

  5. Я нажал на удаленный сервер (git push origin feature/26062018-offline-seite_ef)

  6. Я переключился на Bitbucket и создал запрос на извлечение. Существует коммит с идентификатором f0ebe14, но я ожидал 0593ba83.

enter image description here

Тогда я разработал что-то еще:

  1. Сначала я создал новую ветку feature/26062018-newsletter-popup_ef.

  2. Я добавил коммитов.

  3. Я проверил местное отделение master.

  4. Я слился в ветви функций (git merge feature/26062018-newsletter-popup_ef)

  5. Я нажал на удаленный сервер (git push origin feature/26062018-newsletter-popup_ef)

  6. Я переключился на Bitbucket, чтобы создать запрос на извлечение. Но вот что я получаю:

enter image description here

Я ожидал только коммит 7a52ce3b, но вместо этого получил эти два.

Что не так с моим рабочим процессом git?

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Обратите внимание на то, что вы сделали вначале 3-5:

  1. Я проверил местное отделение master.

  2. Я слился в ветви функций (git merge feature/26062018-offline-seite_ef)

  3. Я нажал на удаленный сервер (git push origin feature/26062018-offline-seite_ef)

То, что вы делали на шаге 4, иногда называется тестовым слиянием . Вы нигде не добавляли это слияние, но оно все еще есть в вашем хранилище.

Затем вы приступили ко второй группе шагов:

создал новую ветку feature/26062018-newsletter-popup_ef.

Это конкретное имя, в данный момент, назвало сделанное вами тестовое слияние. Дополнительные коммиты, которые вы сделали в шаге 2, строятся из этого слияния, поэтому коммиты, которые вы выдвинули в конце, были:

  • все коммиты, которые вы сделали в первой группе (они, вероятно, уже были в вашем предыдущем запросе на получение, так что эта часть, вероятно, прошла очень быстро); плюс
  • коммит слияния; плюс
  • коммиты, сделанные вами после создания feature/26062018-newsletter-popup_ef.

Следовательно, это коммиты в вашем втором запросе на извлечение: все в вашем первом, плюс слияние, плюс те, которые вы хотели иметь в нем.

То, что вы должны были сделать, было одним из следующих:

  • сделайте тестовое слияние в какой-то другой ветви (не вашей master) или
  • сделать тестовое слияние на master, но затем удалить его (например, git reset --hard HEAD~1); или
  • даже не связывайтесь с тестовым слиянием (только хорошая практика в некоторых ограниченных случаях).

На этом этапе вам нужно отозвать второй запрос на извлечение. Вы можете создать новую ветвь, начиная с последнего коммита до первого слияния тестов - помните, что в этот момент у вас есть два тестовых слияния на вашем master. Эта начальная точка обычно также совпадает с идентификатором хэша фиксации origin/master. Теперь, когда у вас есть новая ветвь, вы можете использовать git cherry-pick, чтобы скопировать нужные коммиты в новые коммиты, которые корректно расширяют граф, проверить, объединить коммиты, если хотите, и нажать эти коммиты. (Вы можете повторно использовать имя ветки, переименовав ветку, в которой слишком много коммитов, используя git branch -m; см. документацию .)

0 голосов
/ 26 июня 2018

Я «решил» это, выполнив git reset --hard 6d960676 (сброс до источника / мастера). Затем я начал все сначала, но на этот раз я вообще не слился со своим местным мастером после того, как разработал свою функцию. Я просто позволяю ветке открыться и не соединяюсь с моим локальным мастером и нажимаю.

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

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

0 голосов
/ 26 июня 2018

Вы создали новую ветку feature/26062018-newsletter-popup_ef из ветви feature/26062018_offline-seite_ef вместо ветви master. Таким образом, вы включили изменения из ветки feature/26062018_offline-seite_ef в вашу ветку.

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