Ошибка git: не удалось нажать несколько ссылок на
По какой-то причине я не могу сейчас толкать, тогда как я мог бы это сделать вчера.
Возможно, я испортил конфигурацию или что-то в этом роде.
Вот что происходит:
Когда я использую мастер создания git push origin
![gitbashscr]()
Как выглядит мой рабочий каталог и удаленный репозиторий:
![enter image description here]()
Ответы
Ответ 1
Если в репозитории GitHub были зафиксированы новые коммиты, когда вы работали локально, я бы посоветовал использовать:
git pull --rebase
git push
Полный синтаксис:
git pull --rebase origin master
git push origin master
С Git 2. 6+ (сентябрь 2015 г.) после выполнения (один раз)
git config --global pull.rebase true
git config --global rebase.autoStash true
Достаточно простого git pull
.
Таким образом, вы будете воспроизводить (часть --rebase
) ваши локальные коммиты поверх недавно обновленного origin/master
(или origin/yourBranch
: git pull origin yourBranch
).
См. более полный пример в главе 6 "Извлечение с помощью " Git Pocket Book.
Я бы порекомендовал:
git push -u origin master
Это установит отношения отслеживания между вашей локальной мастер-веткой и вышестоящей ветвью.
После этого любой будущий толчок для этой ветки можно сделать простым:
git push
См. "Почему мне нужно явно нажать новую ветку?".
Поскольку OP уже сбросил и переделал свой коммит поверх 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
.
Ответ 2
Кто-нибудь пробовал:
git push -f origin master
Это должно решить проблему.
РЕДАКТИРОВАТЬ: Основываясь на комментарии @Mehdi ниже, я должен уточнить кое-что о - —force pushing
. Команда git выше работает безопасно только для первого коммита. Если в предыдущем уже были зафиксированы коммиты, запросы или ветки, это сбрасывает все и устанавливает его с нуля. Если это так, пожалуйста, обратитесь к подробному ответу @VonC для лучшего решения.
Ответ 3
Если вы только что использовали git init
и добавили свои файлы с помощью git add .
или что-то подобное и добавили удаленную ветку, возможно, вы просто не совершили (git commit -m 'commit message'
) что-нибудь локально, чтобы нажать на удаленный... У меня просто была эта ошибка, и это была моя проблема.
Ответ 4
У меня была такая же проблема. Я получал эту проблему, потому что я не совершил какой-либо фиксации, даже не начального коммита, и все же я пытался нажать.
Как только я сделал git commit -m "your msg"
, а затем все работало нормально.
Ответ 5
Я нашел решение этой проблемы в справке 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
Ответ 6
Переименуйте свою ветку и затем нажмите, например:
git branch -m new-name
git push -u new-name
Это сработало для меня.
Ответ 7
git init
git remote add origin https://gitlab.com/crew-chief-systems/bot
git remote -v
(для проверки текущего хранилища)
git add -A
(добавить все файлы)
git commit -m 'Added my project'
git pull --rebase origin master
git push origin master
Ответ 8
Если вы используете gerrit, это может быть вызвано несоответствующим Change-id в commit. Попробуйте удалить Change-Id и посмотреть, что произойдет.
Ответ 9
Не забудьте зафиксировать свои изменения перед тем, как перейти к репозиторию Github. Это может решить вашу проблему.
Ответ 10
Непринятие начальных изменений перед нажатием также вызывает проблему
Ответ 11
перед нажатием вы должны добавить и зафиксировать изменения или сделать git push -f origin master
Ответ 12
Я столкнулся с той же проблемой, исправленной с помощью следующих шагов.
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://[email protected]/User_name/sample.git
(Над URL https://[email protected]/User_name/sample.git ссылается на URL вашего проекта с ведром битов)
git push -u origin master
намек
проверьте, связана ли ваша учетная запись на git hub с вашим локальным git, используя:
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
Ответ 13
Это может случиться, когда у вас нет файлов. Попробуйте создать текстовый файл, затем выполните следующие команды
git add .
git commit -m "first commit"
git push --set-upstream origin master
Ответ 14
Для меня проблема была в том, что я не добавил файлы перед фиксацией.
git add .
git commit -m "your msg"
Ответ 15
Не уверен, что это применимо, но исправление для меня заключалось в том, чтобы сделать что-то локально после git init. Затем я нажал на удаленный доступ с помощью --set-upstream...
Ответ 16
Создание новой ветки решено за меня:
git checkout -b <nameOfNewBranch>
Как и ожидалось, нет необходимости объединять, так как предыдущая ветвь полностью содержалась в новой.
Ответ 17
Если вы пытаетесь инициализировать каталог с существующим GitHub-репозиторием, вы должны убедиться, что вы вносите изменения.
Попробуйте создать файл:
touch initial
git add initial
git commit -m "initial commit"
git push -u origin master
Это поместит файл с именем initial, который вы можете удалить позже.
Надеюсь, этот ответ поможет! Удачи!
Ответ 18
Вы должны дать некоторую силу
Просто нажмите --force.
Ответ 19
git push origin {your_local_branch}:{your_remote_branch}
Если ваша локальная ветвь и удаленная ветвь имеют одно и то же имя, вы можете не git push {your_remote_branch}
имя вашей локальной ветки, просто используйте git push {your_remote_branch}
. В противном случае он выдаст эту ошибку.
Ответ 20
Для пользователей исходного дерева
Сначала сделайте первоначальный коммит или убедитесь, что у вас нет незафиксированных изменений, затем рядом с исходным деревом есть "REMOTES", щелкните его правой кнопкой мыши и затем нажмите "Push to origin". Вот и ты.
Ответ 21
В моем случае, это был мой husky
пакет, который запрещает толчок.
> husky - pre-push hook failed (add --no-verify to bypass)
> husky - to debug, use 'npm run prepush'
error: failed to push some refs to 'https://[email protected]/username/my-api.git'
Чтобы принудительно нажать на него, просто запустите git push origin master --no-verify
Я запустил npm run prepush
чтобы увидеть отладочную ошибку, и это было причиной:
npm ERR! code ELOCKVERIFY
npm ERR! Errors were found in your npm-shrinkwrap.json, run npm install to fix them.
npm ERR! Invalid: lock file [email protected] does not satisfy [email protected]^0.9.0
Запустил npm install
и передал его, и проблема была исправлена.
Ответ 22
git push --force
легкий успех!
Ответ 23
Это происходит со мной, так как у меня был тег с той же веткой, и я попытался перенести ветку на удаленную страницу.
Ответ 24
Ни один из приведенных выше ответов не сработал. Я должен был оформить заказ с нуля и начать все сначала. Насколько я знаю, я не делал никаких необычных изменений в git, пока он не перестал работать.
Ответ 25
В моем случае проблема заключалась в том, что (как ни странно) не было ветки с именем master. Я взял хранилище от Github.
Ответ 26
Я нажимал на существующую ветку 'evelop' опечатки, которая еще не была оформлена, и вместо этого я хотел нажать на ветку под названием 'envelope'. Таким образом, ветвь должна существовать/извлекаться в локальной рабочей копии, чтобы, конечно, выдвинуть эту ошибку, а не сделать опечатку.
Ответ 27
сделать это
git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master
Удачного кодирования!
Ответ 28
К сожалению, я не смог решить проблему с другим решением, но моя проблема заключалась в том, что имя ветки, которую я хочу нажать, не было принято удаленно. Я изменил его на правильный формат и принял.
это был test/testing_routes
, и ему нужно было изменить его на testing_route
, который /
не разрешен удаленно.
Вы должны убедиться, что формат имени ветки правильный.
Ответ 29
Хорошо, если ни один из вышеперечисленных ответов не работает, и если вы что-то испортили с помощью ssh-add
в последнее время. Попробуйте
ssh-add -D
Ответ 30
В моем случае эта ошибка произошла из-за того, что в нашей версии GitLab произошло некоторое обслуживание.