it-roy-ru.com

git error: не удалось отправить некоторые ссылки на

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

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

Когда я использую мастер git Push Origin

gitbashscr

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

enter image description here

228
hikki

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

git pull --rebase
git Push

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

git pull --rebase Origin master
git Push Origin master

Таким образом, вы будете воспроизводить (часть --rebase) ваши локальные коммиты поверх недавно обновленного Origin/master (или Origin/yourBranch: git pull Origin yourBranch).

Смотрите более полный пример в главе 6 Pull with rebase из Git Pocket Book .

Я бы порекомендовал:

git Push -u Origin master

Это установит отношения отслеживания между вашей локальной веткой master и ее веткой upstream.
После этого любой будущий Push для этой ветви может быть сделан простым:

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 .

352
VonC

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

git Push -f Origin master

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

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

49
CagCak

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

28
ironcladmvtm

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

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

16
ppmakeitcount

Я нахожу решение этой проблемы в справке 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
11
Sealter

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

git branch -m new-name
git Push -u new-name

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

6
p8ul

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

4
Claw

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

4
Jim Sime

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 'Добавлен мой проект'

6) git pull --rebase Origin master

7) мастер git Push Origin

3
James Siva

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

3
Kinnera Reddy

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

3
Alf Moh

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

  1. git init

  2. git add.

  3. git commit -m 'Добавить ваше сообщение коммита'
  4. git удаленное добавление Origin https: //[email protected]/User_name/sample.git

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

  5. git Push -u Мастер происхождения
1
Divya

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

1
user1889992

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

Удалить локальный репозиторий из windows 1. del/F/S/Q/A .git 2. rmdir .git 3. Исправьте имя локальной папки (XXXX02-> XXXX20) или, если это вновь созданное репо, удалите его и заново создайте репо (XXXX02 Имя репо изменилось на XXXX20) . 4. git init 5. Переназначить с удаленного репо, если оно не отображается . 6. git remote add Origin https://github.com/ / XXXX20.git 7. git Push -u Origin мастер

0
Sunil Vishnu Raskar

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

Где это находится?

.git/конфигурации

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

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

Это решило мою проблему

0
Edd
git Push Origin {your_local_branch}:{your_remote_branch}

Если ваша локальная ветвь и удаленная ветвь имеют одно и то же имя, вы можете не указывать имя вашей локальной ветки, просто используйте git Push {your_remote_branch}. В противном случае он выдаст эту ошибку.

0
Yitong Feng

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

Во время редактирования локального репозитория я изменил файл readme.md на веб-странице GitHub. В результате, когда я попробую команду git pull --rebase Origin master, командная строка напомнит мне, что

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

Итак, мне нужно сначала выполнить команду git stash, чтобы сохранить все измененные файлы, а затем следовать принятому ответу. После этого локально зафиксированные файлы были отправлены в репозиторий Github. Наконец, я выполняю git stash pop, чтобы восстановить эти файлы без изменений.

Таким образом, последовательность команд для меня

git stash
git pull --rebase Origin master
git Push Origin master
git stash pop

Поскольку в настоящее время я не могу комментировать под принятым ответом, я добавил ответ на этот вопрос.

0
Gary Wang

В моем случае это был мой пакет husky, который запрещает Push.

> 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's [email protected] does not satisfy [email protected]^0.9.0

Запустите npm install и зафиксируйте его, и проблема будет устранена.

0
Jee Mok

В моем случае закрытие редактора (Visual Studio Code) решило проблему.

0
Vasyl Gutnyk

Если вы пытаетесь инициализировать каталог с существующим GitHub-репозиторием, вы должны убедиться, что вы вносите изменения.

Попробуйте создать файл:

touch initial
git add initial
git commit -m "initial commit"
git Push -u Origin master

Это поместит файл с именем initial, который вы можете удалить позже.

Надеюсь, этот ответ поможет! Удачи!

0
Andreas Bigger

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

git add .
git commit -m "first commit"
git Push --set-upstream Origin master
0
sushil suthar

Создание новой ветки решено за меня:

git checkout -b <nameOfNewBranch>

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

0
Santiago M. Quintero

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

0
GreenGiant

Для пользователей исходного дерева

Сначала сделайте начальный коммит или убедитесь, что у вас нет незафиксированных изменений, затем рядом с исходным деревом есть «REMOTES», щелкните его правой кнопкой мыши и затем нажмите «Push to Origin». Вот и ты.

0
Bowie Chang

Хорошо, если ни один из приведенных выше ответов не работает и если вы что-то напутали с ssh-add в последнее время. Пытаться

ssh-add -D
0
Abhisek