Gitlab - Как организовать филиалы в разветвленном проекте? - PullRequest
0 голосов
/ 04 марта 2019

Я разбудил проект из формы GitHub.Я занимаюсь собственной разработкой в ​​ветке master (создавая ветки для разработанных функций / исправлений и сливая их обратно в master).

Теперь я создал ветку bugfix-123 в своем форке, чтобы исправить проблему 123 в исходном проекте.Я хочу создать новый запрос на включение, чтобы включить мое исправление в исходный проект.Но я заметил, что запрос на извлечение содержит не только само исправление ошибки, но и все мои коммиты в ветке master с момента создания ветки.

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

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Как уже упоминалось в Отправьте запрос на GitHub только для последнего коммита , необходимо создать отдельную ветку исправления ошибок для запроса на получение. Редактировать: Хотя я думал, что мой ответ отличается от принятого ответа в ссылке, я, вероятно, неправильно его прочитал - я сделал то же самое:

git fetch upstream              #synchronize local repo from upstream

git checkout upstream/master    #the upstream repository master has already a local branch, upstream/master, it's not necessary to create another copy
git checkout -b PR-bugfix-123     #create a branch dedicated for the pull request, and make it your current branch
git cherry-pick <commit hash>   #merge changes from a specific commit; cherry-pick also allows picking a range of commits

git push origin PR-bugfix-123   #publish the branch to the fork in order to create the pull request

Обозначение:

Я принял решение по следующему соглашению:

  • Ветвь разработки является основной, но переименовывать ее не нужно
  • Ветвь с исправлениями ошибок в разработке все ещеbugfix-123
  • В ветке запроса на добавление стоит префикс "PR": PR-bugfix-123
0 голосов
/ 04 марта 2019

Во-первых, вы должны добавить исходный проект в качестве удаленного:

git remote add upstream <URL to original project>

Теперь получите ветки из оригинала:

git fetch upstream

Теперь у вас будет ветвь с именем upstream/master который отражает ветку master из исходного хранилища.Вы можете переместить ветку исправления ошибок, перебазировав ее сверху:

git checkout -b PR-bugfix-123 bugfix-123
git rebase --onto upstream/master master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...