Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git:虽然我做了Git pull,但推送一些裁判失败_Git - Fatal编程技术网

Git:虽然我做了Git pull,但推送一些裁判失败

Git:虽然我做了Git pull,但推送一些裁判失败,git,Git,当我更改一些文件并尝试进行推送时,我开始出现“推送某些引用失败”错误。大多数指令都告诉我们先做git pull。我已经做了,git说一切都是最新的。你知道如何解决这个错误吗?我也开始收到“没有可用的版本信息”的消息,我不知道这是否与错误有关 git push origin master git: /usr/local/lib/libz.so.1: no version information available (required by git) Enter passphrase for key

当我更改一些文件并尝试进行推送时,我开始出现“推送某些引用失败”错误。大多数指令都告诉我们先做git pull。我已经做了,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 git@[mydomain].beanstalkapp.com:/repo-git.git
! [rejected]        master -> master (non-fast forward)
error: failed to push some refs to 'git@[mydomain].beanstalkapp.com:/repo-git.git'

错误在于,其他人已将
分支推入,如果
git
允许您推入,您将覆盖他们的更改(这就是
非快进
错误的含义)。因此,您需要将本地
master
分支与远程
master
分支合并

如果您在本地分支不是
主分支的情况下执行了
git pull
,则可能会发生这种情况。如果您只想推送正在处理的分支,而不想推送
master
分支,则需要使用
git push
的完整形式告诉它
git

$ git push remote local-branch:remote-branch

一定要确认拉力确实起作用。合并(是拉的一部分)可能失败


当我收到这个错误消息时,我没有注意到拉失败。由于一些未提交的文件更改(与我试图推送的文件无关),导致合并失败,因此推送失败。我恢复了那些文件更改(因为它们并不重要),然后再次执行拉操作。成功拉取后,推送工作。

最好的答案是Git帮助

处理非快进错误

将提交(
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
等命令在本地进行破坏性更改的结果。虽然可以通过向push命令添加--force来覆盖远程,但只有在绝对确定这是您想要做的事情时,才应该这样做。强制推送可能会导致获取远程分支的其他用户出现问题,这被认为是不好的做法。当有疑问时,不要强制执行push。

此外,如果在push命令中输入了错误的分支名称,则会发生错误

例如,假设您在一个名为
iss8
的分支上,但您告诉git推送到
iss3
(就像我刚才做的那样),您将得到相同的错误

$ git push origin iss3
error: src refspec iss3 does not match any.
error: failed to push some refs to 'git@myhost.com: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 git@myhost.com:myuser/myproject.git
 * [new branch]      iss8 -> iss8

确保您的分支未受保护,或者检查了开发人员可以推送

1) git stash 
2) git pull
3) git push
我的原始错误:

在“吉特藏匿”之后


尝试此命令
git push-f origin master

如果在另一个位置克隆存储库并尝试推送它,会发生什么情况?我如何将本地主分支与远程主分支合并?无论如何,我注意到git分支使用了一个名为(No branch)的分支。我做了checkout master,现在我可以做push/pull当你做
git pull
时,它会执行一个'git fetch',然后与当前分支跟踪的远程分支进行
git merge
。您可以使用
git merge master
进行手动合并。这是一条注释,不是应答合并:origin-不是我们可以合并的东西