GitHub - лучший способ работать с множественными запросами на вытягивание? - PullRequest
0 голосов
/ 16 июня 2020

Я работал с проектом с открытым исходным кодом, который требует sh всех запросов на вытягивание (PR) в главную ветку. Все PR не будут объединены, пока не будет выпущена новая версия. Предположим, я продвинул PR и хочу работать с новым. Мне нужно удалить все коды предыдущего. Я не могу создать новую ветку из-за требований проекта. Однако, если я что-нибудь сделаю с этим кодом и pu sh со своей вилкой, это немедленно отразится на моем предыдущем PR. Чтобы избежать влияния, я должен сначала удалить мою текущую вилку, а затем снова вилку для нового PR. Это работает для меня, но потребовалось много шагов, довольно неприятно и трудно вернуться к работе с предыдущими PR.

Есть способ лучше? Спасибо

1 Ответ

1 голос
/ 16 июня 2020

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

В случае запроса на вытягивание ветвь назначения является главной. Исходная ветка не должна быть главной в вашей вилке. Это должна быть ветка topi c в вашей вилке.

Правильный поток:

  1. Вытяните последнюю версию из основной ветки исходного репозитория в главную ветку в ваша вилка

    # Configure remote from where you forked your repo (do this only once)
    git remote add upstream https://github.com/foo/bar.git
    
    # Do these steps before starting on a new feature
    git fetch upstream
    git checkout master
    git merge upstream/master
    git push origin HEAD
    
  2. Создайте топи c ветку master на вашей вилке
    git checkout -b feature master
    
  3. Работайте и коммитите сколько угодно раз
    git commit -m "..."
    
  4. Pu sh ваша ветка topi c к вашей вилке на GitHub
    git push origin -u HEAD
    
  5. Отправьте запрос на вытягивание в исходный репозиторий, чтобы объединить ветку topi c в вашей вилке с основной веткой в их репозитории

Повторите шаги 1-5 для такого количества запросов на вытягивание, которое вы сочтете необходимым.

Из истории запроса на извлечение должно быть очевидно, действительно ли ваш топи c ветка актуальна. Если их репозиторий требует, чтобы вы слили ваш master с их master для запроса на вытягивание, их процесс прерывается. Они делают это неправильно, и именно по той причине, что вы задаете вопрос на StackOverflow.

...