2015-07-29 2 views
0

Я сделал вилку из главной ветки менеджера проекта. По моему мнению, теперь главная ветвь менеджера - upstream/master, то, что я только разветвил, - origin/master. Я внес несколько изменений в origin/master, некоторые изменения просто добавляют комментарии и код для печати промежуточных результатов, которые служат моему пониманию. Но есть и изменения, которые являются новым кодом. Я совершил все изменения в одной фиксации. Но я хочу отправить запрос на вытягивание до upstream/master только для вновь созданного кода. У меня не было простого решения для моей цели, как указано в this Stack Overflow question.Как создать ветку, которая может быть синхронизирована с ведущим мастером?

Теперь я хочу, чтобы создать еще одну ветку под названием Branch1 на origin, и эта отрасль должна быть идентична upstream, то я только поручаю вновь написанный код Branch1 и отправить запрос на нагрузочный upstream из этого Branch1. Является ли этот подход применимым в текущей системе github? Если да, можете ли вы рассказать мне, как именно это можно сделать.

EDIT

на основе комбинации следующих комментариев, ответов и собственного поиска, я решил эту проблему. Что я сделал следующий:

  1. git checkout -b Branch1 upstream/master, это будет получить идентичную копию upstream/master и сделать его как новый филиал под названием Branch1
  2. git checkout Branch1, и в файле config, изменить пульт для Branch1 на origin
  3. git checkout master somefolder, мастер должен быть origin/master в этот момент.
  4. git commit -m 'message'
  5. git push, somefolder будет оттеснена Branch1
+0

ли вы на самом деле раскошелиться, или просто клонировать его непосредственно из его хранилища? –

+0

@ MadaraUchiha, да, я сделал fork из его хранилища, а не клонировал его. – Allanqunzi

+0

Вы работаете с github? – ben

ответ

1

рабочего процесса при работе с GitHub представляет собой смесь из GIT команд и действий на GitHub. Допустим, что ваши менеджеры репо находятся в https://github.com/manager/repo, и ваше имя allanqunzi на github.

1) Вилка репо на GitHub, так что у вас есть репо под https://github.com/allenqunzi/repo

2) клонировать этот репозиторий к вашей машине с git clone [email protected]:allenqunzi/repo.git

3) выход git remote -v должен показывать только один пульт дистанционного управления с имя происхождения, указывающее на ваш репо по адресу [email protected]:allenqunzi/repo.git

4) внесите изменения и передайте их. нажмите их git push origin master на ваш репо

5) перейдите в github и откройте запрос на тяну. он должен появиться как новый запрос на перенос в репо вашего менеджера. в нем говорится, что вы хотите, чтобы кто-то объединил мастер allenqunzi/repo в качестве менеджера/репо.

6) кто-то принимает PR, и ваш код наконец-то попадает в ваш репо-менеджер.

Дополнительно информация A)

Если во время работы что-то cahnges в менеджер/репо и вам это нужно на месте, вы можете добавить менеджер репо в качестве второго пульта дистанционного управления с git remote add upstream [email protected]:manager/repo.git. git remote -v показывает теперь два разных пульта дистанционного управления. Теперь вы можете сделать git fetch upstream/master и git merge upstream/master, чтобы обновить локальное репо, а затем нажмите git push origin master, чтобы обновить ваше репо на github.

Дополнительно информация B)

Вы также можете добавить фиксаций в другой ветке, нажмите эту ветку и открыть PR от этой отрасли в основной ветви ваших менеджеров репо.

Дополнительно информация C)

Если вы просто хотите добавить некоторые файлы/берет на себя обязательство репо менеджеров, создать новую ветку локально. Затем вишни выберите все коммиты в эту ветку. Или скопируйте все файлы, которые вы хотите изменить, а затем сделайте новый коммит. Нажмите эту ветку и открыть запрос тянуть с этой отраслью (см B) для более)

Дальнейших показаний

Два ресурсов могут быть полезно тоже (они объясняют вид такие же, но, возможно, немного более ясно;))

«Вилка репо» https://help.github.com/articles/fork-a-repo/

«Синхронизируя вилка» https://help.github.com/articles/syncing-a-fork/

+0

Моя проблема заключается в шаге 4. Я вносил изменения в одну фиксацию в «origin/master», среди этих изменений есть некоторые, которые я не хочу вытаскивать запрос, а также есть некоторые, которые я хочу отправить запросу. Прямо сейчас я не могу выбрать, какой конкретный файл вытащить запрос, я могу только запросить все изменения, которые я сделал. – Allanqunzi

+1

добавлена ​​дополнительная информация C. это должно помочь – ben

Смежные вопросы