git: Может ли git понять, что коммиты, полученные мной с одного пульта, такие же, как и с другого пульта? - PullRequest
2 голосов
/ 18 февраля 2010

Мне интересно, почему происходит какое-то поведение при использовании git:

Я разветвлял проект на github для своего собственного проекта на github.Затем я клонировал свой проект на мой компьютер.Некоторые изменения произошли в исходном проекте, поэтому я сказал github зафиксировать их, используя его очередь форка.Я делаю git pull на своем компьютере, чтобы получить эти изменения.

Теперь в первоначальный проект пришло еще несколько изменений, но на этот раз я добавил удаленную ветку в исходный проект на моем компьютере.Когда я выполняю git-выборку, а затем выполняю git-слияние с моей локальной ветвью, у меня возникает конфликт.

Я не понимаю, почему он это делает, поскольку я почти в курсе и просто нужен последнийприменяется несколько коммитов?Может ли Git не сказать, что у меня уже есть первый набор коммитов, потому что я получил их косвенно через мой собственный проект github?

Ответы [ 2 ]

3 голосов
/ 18 февраля 2010

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

Ребаз будет отмечать, что изменения в исходном коде те же, а затем отбросит их.

2 голосов
/ 18 февраля 2010

Очередь GitHub Fork Queue принципиально повреждена и ни при каких обстоятельствах не должна использоваться. Очередь Fork использует git cherry-pick для выбора отдельных коммитов, не объединяет соответствующие ветви. Сбор вишни в значительной степени всегда неправильный выбор; и на самом деле большая часть сообщества Git (включая Линуса Торвальдса) строго против этого. (Когда Линус еще работал над проектом Git, он категорически против добавления поддержки Git Cherry-Pick и по сей день он по-прежнему отказывается объединять любые ветви, содержащие коммиты Cherry-Pick.)

Вы должны всегда предпочитать слияние, а не сбор вишни.

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