Добавление дополнительного удаленного репозитория в EGit

У меня есть 3 разных репозитория git:

  1. Проект с открытым исходным кодом
  2. Мой собственный форк проекта на GitHub, который был разветвлен с 1.
  3. Мой локальный репозиторий, который был клонирован из версии 2.

Я работаю над 3. и могу вносить/извлекать изменения в/из 2.

Однако теперь в 1. есть изменения, которые я также хотел бы объединить в свою собственную вилку. Я думаю, что я хочу сделать, это вытащить изменения из 1. в удаленную ветку отслеживания в 3., выполнить слияние локально, а затем отправить в 2 ...... это разумно?

Если да, то как мне лучше всего добиться этого в EGit? В частности, я не уверен, как мне заставить Egit извлекать изменения из 1. когда он уже настроен на отправку/вытягивание из 2.


person mikera    schedule 02.03.2012    source источник
comment
За те несколько раз, что я использовал его, я обнаружил, что egit — довольно ужасный способ взаимодействия с Git для всех операций, кроме самых основных. Вместо этого я настоятельно рекомендую изучить и использовать Git из командной строки.   -  person Andrew Marshall    schedule 02.03.2012


Ответы (1)


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

    git remote add <remote_name> <url_of_open_source_project>

Теперь вы можете увидеть свои удаленные репозитории, набрав:

    git remote -v

Создайте новую ветку, которая будет использоваться для слияния кода репо 1:

    git checkout -b <branch_name>

Получите репозиторий 1, а затем объедините ветку репо 1 с вашей локальной веткой:

    git fetch <remote_name>
    git merge <remote_name>/<remote's branch_name>

После этого вы можете нажать на свой форк github (при условии, что удаленное имя origin):

    git push -u origin <github_branch_name>
person triad    schedule 02.03.2012
comment
спасибо, кажется, это работает очень хорошо! примет, если никто не придумает способ сделать это внутри самого EGit. - person mikera; 02.03.2012
comment
@Alex - это полезный ответ, но он строго не отвечает на вопрос (который касался Eclipse EGit). Я оставил вопрос открытым на случай, если у кого-то есть лучший ответ, касающийся EGit, который я был бы рад принять. - person mikera; 07.12.2013
comment
@mikera Достаточно честно. Я только что видел эту часть: приму, если никто не придумает способ сделать это в самом EGit, который был опубликован так давно, что казалось маловероятным, что что-то скоро изменится. - person Alex; 08.12.2013