Не могу сделать правильный запрос git pull

533
renyhp

Я новичок в GitHub, и поэтому я много с ним перепутался, поэтому мне нужна пошаговая помощь. Извините за раздражение: / Кроме того, прежде чем что-то сказать, я должен уточнить, что я использовал только GitHub, потому что я столкнулся с некоторыми проблемами с Git Bash.

Antefact: Я раздвоил репо, сделал несколько коммитов и отправил запрос на удаление. Однако у него были некоторые конфликты. Я связался с программистом, и он сказал, что позже объединит мой запрос на извлечение.

Теперь я должен был сделать некоторые другие коммиты, но между тем исходное репо было обновлено с 30+ коммитами. Я не знал, как сделать новый обновленный форк, поэтому я создал новый репо, вручную загрузил туда его обновленный репо и сделал свои коммиты. Очевидно, что теперь я не могу сделать запрос на удаление, так как git не распознает, с чем сравнивать.

Теперь, о чем я прошу, так это о том, чтобы иметь возможность выполнить этот запрос на извлечение. Я также готов повторить свои коммиты на новом форке / ветке, если кто-то может помочь мне его создать. При необходимости я, конечно, могу также использовать Git Bash, но мне понадобится пошаговая помощь, потому что я читаю что-то в Интернете, но каждая команда, которую я запускаю, не соответствует тому, что я читаю. Очевидно, я не могу удалить свой первый репо, потому что слияние еще не сделано.

0

2 ответа на вопрос

0
João Quintas

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

Прежде чем вы это сделаете, вы должны рассмотреть возможность внесения изменений или убедиться, что ваш локальный репозиторий обновлен по сравнению с оригинальным разветвленным репозиторием.

Это может быть полезно для будущего https://services.github.com/kit/downloads/github-git-cheat-sheet.pdf https://www.git-tower.com/learn/cheat-sheets/git

0
larkey

Ответ уже опубликован, но чтобы не допустить повторения такой вещи:

GitHub - просто Git-Host для многих и работает как любой другой (GitLab, Gogs, ...).

Я рекомендую изучать Git (а не «изучать GitHub»). Git - действительно хороший SCM, но это не тривиально. Лично мне всегда нравится рекомендовать "Think Like A Git", imho, лучшее вступление.

Если вы клонируете репо, вы на самом деле делаете много вещей:

  • Инициализировать новый локальный репозиторий git
  • Добавьте удаленный (URL), с которого вы клонируете
  • Получить данные (коммиты)
  • Извлечь ветку (часто называемую master, но это просто соглашение) с той же историей фиксации, что и соответствующая ветка на удаленном компьютере.

Если вы разветвляете репо, все, что делает GitHub, - это копирует раздвоенный пульт в новое пространство имен под вашей учетной записью. Теперь вы можете клонировать репо, на которое у вас есть разрешение на запись.

Теперь вы хотите тянуть-запрос. Вытягивающий запрос на GitHub (это особенность, специфичная для GitHub, хотя другие серверы часто реализуют аналогичные функции) работает так, как вы указываете исходную комбинацию remote / branch и целевое remot / branch.

Из-за этого считается хорошим стилем создать новую ветку в вашем репо, которая будет ветвиться с фактической веткой, в которую вы хотите объединиться позже, и посвятить ее фиксации только для pull-запроса. Я часто использую схему именования, например "PRQ_myfeature".

С помощью этого метода вы все еще можете позволить своей основной ветви "отслеживать" основную ветку исходного пульта. Чтобы сделать это, используйте «$ git remote add some_fancy_name URL». Теперь вы можете выбрать и перетащить оригинального мастера в свой, чтобы отслеживать изменения.

Это также позволяет вам регулярно перебазировать ветку pull-запроса и проверять наличие конфликтов.

Это означает, что автор может просто без проблем объединить ваш pull-запрос, что делает его более вероятным, что они это сделают;)