Вопрос

Я сдаюсь!Всякий раз, когда я пытаюсь давить, у меня получается глупый:

! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

У нашей команды есть новая настройка git.Вместо создания частных веток я теперь раздвоил наш основной репозиторий (на github), чтобы создать свою собственную копию.

В какой-то момент то, что я сделал, было:

$ git fetch upstream master:upstreammaster

Итак, вот моя текущая настройка::

$ git branch
master
* upstreammaster

$ git remote -v
origin  git@github.com:userX/projectX.git
upstream    git@github.com:companyX/projectX.git

где UserX - это мой личный репозиторий.

Поэтому я иду и вношу некоторые изменения в свою ветку upstreammaster и ИЗВЛЕКАЮ данные из "upstreammaster master".Все сливается и прочее:

$ git pull upstream master
remote: Counting objects: 95, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 60 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (60/60), done.
From git@github.com:companyX/projectX
 * branch            master     -> FETCH_HEAD
Merge made by recursive.
stuff                      |  165 ++++++++++++--------
stuff                      |   35 ++--
stuff                       |  107 ++++++++++---
stuff                       |  105 ++++++++++---
stuff             |   24 ++--
stuff               |    9 +-
stuff                   |   53 +++----
stuff            |   44 +++---
stuff              |   52 +++----
stuff |   32 +----
stuff          |    4 +-
 stuff             |  138 ++++++++---------
stuff     |   58 ++++----
stuff    |  115 ++++++++------
stuff          |    5 +-
stuff                       |   39 ++---
stuff                        |   28 ++--
 17 files changed, 560 insertions(+), 453 deletions(-)

но потом, когда я пытаюсь сделать:

$ git push upstream master
To git@github.com:companyX/projectX.git
 ! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:companyX/projectX.git'

Мы будем благодарны за любую помощь!Если вам нужны разъяснения, пожалуйста, спрашивайте, я отвечу!

Это было полезно?

Решение

При выполнении push попытайтесь указать refspec для ведущего устройства верхнего уровня:

git push upstream upstreammaster:master

Другие советы

Джаррет Харди прав.Или сначала объедините ваши изменения обратно в master, а затем попробуйте нажать кнопку.По умолчанию, git push выталкивает все ветви, имена которых совпадают на удаленном компьютере, и никаких других.Итак, у вас есть два варианта - либо указать это явно, как сказал Джаррет, либо объединить обратно в общую ветку, а затем нажать.

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

Редактирование/Уточнение

Предполагая, что ваш upstreammaster ветка готова к запуску, тогда вы могли бы сделать это:

  1. Извлекайте любые изменения из восходящего потока.

    $ git тянет восходящий мастер

  2. Переключитесь на мою локальную главную ветку

    мастер оформления заказа $ git

  3. Объединить изменения в из upstreammaster

    мастер восходящего потока слияния $ git

  4. Продвигайте мои изменения вверх

    $ git push вверх по течению

Еще одна вещь, которую вы мочь хотите сделать, прежде чем нажимать, это rebase внесите изменения в отношении upstream / master, чтобы все ваши коммиты были объединены.Вы можете либо сделать это как отдельный шаг между # 1 и # 2 выше (git rebase upstream/master) или вы можете сделать это как часть вашего притяжения (git pull --rebase upstream master)

Во-первых, попытайтесь получить те же ссылки, которые вы пытаетесь использовать.

Если это не работает, вы можете принудительно использовать git push с помощью git push -f <repo> <refspec>, но будьте осторожны: этот метод может привести к удалению ссылок в удаленном хранилище.

Первое использование

git pull https://github.com/username/repository master

, а затем попробуйте

git push -u origin master

Является ли ваш репозиторий на " upstream " голое хранилище? Я получил ту же ошибку, но когда я перехожу на голый, они больше не происходят.

Если push-запрос отклонен, попробуйте сначала извлечь его из своей учетной записи github, а затем попробовать push.

Бывший:

В моем случае это выдавало ошибку-

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/ashif8984/git-github.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

**** Итак, что я сделал, так это-****

$ git pull
$ git push

И код был успешно отправлен в мой аккаунт на Github.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top