Ошибка 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

  1. git init

  2. git remote add origin https://gitlab.com/crew-chief-systems/bot

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

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

  5. git commit -m 'Added my project'

  6. git pull --rebase origin master

  7. git push origin master

Ответ 8

Если вы используете gerrit, это может быть вызвано несоответствующим Change-id в commit. Попробуйте удалить Change-Id и посмотреть, что произойдет.

Ответ 9

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

Ответ 10

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

Ответ 11

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

Ответ 12

Я столкнулся с той же проблемой, исправленной с помощью следующих шагов.

  1. git init
  2. git add .
  3. git commit -m 'Add your commit message'
  4. git remote add origin https://[email protected]/User_name/sample.git

    (Над URL https://[email protected]/User_name/sample.git ссылается на URL вашего проекта с ведром битов)

  5. 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 произошло некоторое обслуживание.