Подтвердить что ты не робот

Git: не удалось нажать некоторые ссылки, хотя я сделал git pull

Я начал "не удалять некоторые ошибки ref", когда я сменил некоторые файлы и попытался сделать push. Большинство инструкций говорят, что нужно сделать git. Я сделал это, и git говорит, что все в курсе. Любая идея, как решить эту ошибку? Я также начал получать сообщение "без информации о версии", я не знаю, имеет ли это какое-либо отношение к ошибке.

git push origin master
git: /usr/local/lib/libz.so.1: no version information available (required by git)
Enter passphrase for key '/root/.ssh/id_rsa': 
To [email protected][mydomain].beanstalkapp.com:/repo-git.git
! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to '[email protected][mydomain].beanstalkapp.com:/repo-git.git'
4b9b3361

Ответ 1

Ошибка в том, что кто-то еще нажал на ветвь master, и вы перезаписали их изменения, если git разрешили вам нажать (это значит, что означает ошибка non-fast forward). Поэтому вам нужно объединить локальную ветвь master с удаленной ветвью master.

Это может произойти, если вы сделали git pull, в то время как локальная ветвь не была ветвью master. Если вы хотите только направить ветвь, над которой работаете, а не ветвь master, вам нужно указать ее git, используя полную форму git-push:

$ git push remote local-branch:remote-branch

Ответ 2

Самый лучший ответ на Git help здесь

Работа с ошибками без быстрой пересылки

Время от времени вы можете столкнуться с этой ошибкой, нажимая фиксацию (git push origin master) на GitHub:

To https://github.com/user/repo.git  
 ! [rejected]        master -> master (non-fast-forward)  
error: failed to push some refs to 'https://github.com/user/repo.git'  
To prevent you from losing history, non-fast-forward updates were rejected  
Merge the remote changes (e.g. 'git pull') before pushing again.  
See the  'Note about fast-forwards' section of 'git push --help' for details.

Эта ошибка может сначала быть подавляющей; не бойтесь!

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

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

git fetch origin
git merge origin master

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

git pull origin master

В некоторых случаях эта ошибка является результатом деструктивных изменений, сделанных локально, с помощью команд типа git commit --amend или git rebase. Хотя вы можете переопределить удаленный пут, добавив -force к команде push, вы должны сделать это, только если вы абсолютно уверены, что это то, что вы хотите сделать. Силовые нажатия могут вызвать проблемы для других пользователей, которые извлекли удаленную ветвь, и считаются плохой практикой. Если вы сомневаетесь, не нажимайте.

Ответ 3

Убедитесь, что ваша ветка не защищена, или разработчик может нажать кнопку.

Ответ 4

Обязательно убедитесь, что нагрузка действительно работает. Возможно, слияние (которое является частью pull) потерпело неудачу.

Когда у меня появилось это сообщение об ошибке, я не заметил, что вытащил неудачу. Не удалось вытащить из-за некоторых нефиксированных изменений файла (не связанных с файлами, которые я пытался нажать), из-за которых слияние завершилось с ошибкой. Я вернул эти изменения файла (потому что они не были важны), а затем снова потянул. После успешного нажатия нажатие нажало.

Ответ 5

Кроме того, ошибка возникает, когда вы помещаете неправильное имя ветки в свою команду push.

Например, скажите, что вы находитесь в ветки с именем iss8, но вы говорите git, чтобы нажать на iss3 (как я и сделал), вы получите ту же ошибку.

$ git push origin iss3
error: src refspec iss3 does not match any.
error: failed to push some refs to '[email protected]:myuser/myproject.git'

Хмм, проверьте статус:

$ git status 
On branch iss8
nothing to commit, working directory clean

О, смотри, я на другой ветке. Спасибо git за то, что не позволил мне сделать что-то действительно немое.

$ git push origin iss8
Counting objects: 15, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 2.62 KiB | 0 bytes/s, done.
Total 9 (delta 3), reused 0 (delta 0)
To [email protected]:myuser/myproject.git
 * [new branch]      iss8 -> iss8

Ответ 6

1) git stash 
2) git pull
3) git push

Моя первоначальная ошибка:

введите описание изображения здесь

После "git stash"

введите описание изображения здесь

Ответ 7

попробуйте выполнить эту команду git push -f origin master