в Git ошибка: не удалось подтолкнуть некоторые ссылки на

по какой-то причине я не могу нажать сейчас, тогда как я мог бы сделать это вчера. Может, я напортачил с конфигурацией или что-то в этом роде.

вот что происходит:

когда я использую git push origin master

gitbashscr

Как выглядит мой рабочий каталог и удаленный репозиторий:

enter image description here

17 ответов


если репозиторий GitHub видел новые коммиты, подталкиваемые к нему, пока вы работали локально, я бы посоветовал использовать:

git pull --rebase
git push

полный синтаксис:

git pull --rebase origin master
git push origin master

таким образом, вы бы повторили (--rebase часть) ваши локальные коммиты поверх вновь обновляется!--6--> (или origin/yourBranch: git pull origin yourBranch).

посмотреть более полный пример в Глава 6 потяните с rebase на Git Pocket Book.

я бы рекомендуем:

git push -u origin master

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

git push

в разделе "почему мне нужно явно нажать новую ветку?".


так как ОП уже сбросить и переделать свою фиксацию на origin/master:

git reset --mixed origin/master
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin master

нет необходимости pull --rebase.

Примечание: git reset --mixed origin/master также может быть написано git reset origin/master С --mixed опция по умолчанию при использовании git reset.


кто-нибудь попробовать:

git push -f origin master

Это должно решить проблему.

EDIT: на основе комментария @Mehdi ниже мне нужно уточнить кое-что о —force pushing. Команда git выше работает безопасно только для первой фиксации. Если в предыдущем были уже коммиты, запросы на вытягивание или ветви, это сбрасывает все и устанавливает его с нуля. Если да, пожалуйста, обратитесь к подробному ответу @VonC для лучшего решения.


Если вы просто использовать git init и добавили свои файлы с git add . или что-то подобное и добавили удаленную ветку, возможно, вы просто не совершили (git commit -m 'commit message') что-нибудь локально нажать на пульт... У меня просто была эта ошибка, и это была моя проблема.


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

после того, как я сделал git commit -m "your msg" и тогда все работало нормально.


Я нахожу решение этой проблемы в справке github.

вы можете видеть это из:работа с ошибками без быстрой перемотки вперед

Он говорит:

вы можете исправить это, извлекая и объединяя изменения, внесенные в удаленной ветви с изменениями, которые вы сделали локально:

$ git fetch origin
# Fetches updates made to an online repository
$ git merge origin branch
# Merges updates made online with your local work

или вы можете просто использовать git pull для выполнения обеих команд сразу:

$ git pull origin branch
# Grabs online updates and merges them with your local work

Если вы используете gerrit, это может быть вызвано неправильным идентификатором изменения в фиксации. Попробуйте удалить Change-Id и посмотрите, что произойдет.


переименуйте свою ветку, а затем нажмите, например:

git branch -m new-name
git push -u new-name

это сработало для меня.


Не забудьте зафиксировать изменения, прежде чем нажимать на репо Github. Это может решить вашу проблему.


перед нажатием вы должны добавить и зафиксировать изменения или сделать git push -f origin master


Не фиксация начальных изменений перед нажатием также вызывает проблему


Не уверен, что это применимо, но исправление для меня было зафиксировать что-то локально после git init. Затем я нажал на remote, используя --set-upstream ...


1) git init

2) git remote добавить origin https://gitlab.com/crew-chief-systems/bot

3) git remote-v (для проверки текущего репозитория)

4) git add-A (добавить все файлы)

5) git commit-m 'добавлен мой проект'

6) git pull --rebase origin master

7) git push origin master


Ну, если ни один из вышеперечисленных ответов не работает, и если вы что-то перепутали с ssh-add в последнее время. Попробуй!--3-->

ssh-add -D

в моем случае эта ошибка произошла потому, что в нашей версии GitLab происходило некоторое обслуживание.


вы также можете исправить это, отредактировав файл конфигурации git вашего проекта:

где это?

.git / config

добавить следующие строки в конце, если они не.

[branch "master"] remote = origin merge = refs/heads/master

проблема


в моем случае закрытие редактора (visual studio code) решило проблему.


ошибка git: не удалось нажать некоторые ссылки также приходит, когда имя локального репозитория совпадает с соответствующим именем удаленного репозитория. Убедитесь, что вы работаете над правильной парой репозиториев, прежде чем извлекать изменения в удаленный репозиторий. Если вы пишете неправильно и хотите удалить локальный репозиторий, используйте следующие шаги

удаление локального РЕПО из windows 1. del /F /S /Q / A .мерзавец 2. команда rmdir. мерзавец 3. Исправьте имя локальной папки(XXXX02->XXXX20) или если оно является вновь созданным РЕПО удалить его и воссоздать РЕПО (XXXX02 имя РЕПО изменено на XXXX20). 4. ГИТ инит 5. Remap с удаленным РЕПО, если он не сопоставлен. 6. git remote добавить origin https://github.com/ / XXXX20.git 7. git толчок -U в мастер-происхождения