git错误:无法将一些参考推送到远程
Posted
技术标签:
【中文标题】git错误:无法将一些参考推送到远程【英文标题】:git error: failed to push some refs to remote 【发布时间】:2014-07-29 15:54:15 【问题描述】:由于某种原因,我现在不能推动,而我昨天可以做到。 也许我搞砸了配置或其他东西。
会发生这样的事情:
当我使用 git push origin master 时
我的工作目录和远程存储库是什么样的:
【问题讨论】:
看起来您的本地存储库与 git 存储库不同步。你试过做 git pull 吗? 请检查这个类似的问题 - ***.com/questions/18588974/… @R11G 谢谢先生!这个链接帮助了我***.com/a/18589043/3626672 我在新的 repo 中遇到了这个错误。这有帮助:***.com/a/6518774/2067690 嘿嘿,如果这时候在谷歌上找到这个,请检查 GitHub 是否宕机-> githubstatus.com 【参考方案1】:在 git push -u origin main 上出现错误?试试这个解决方案,它会工作 500%。
第一步:Open your github on any browsers
第二步:Now login your account
登录成功后
第三步:Goto Your Profile Section > https://github.com/settings/profile
第四步:Open Developer Settings > https://github.com/settings/apps
第 5 步:Click Personal access tokens Like This > https://github.com/settings/tokens
然后点击“生成新令牌” 生成新令牌
现在打开 git bash / cmd 工具 并一一尝试这些命令;
1-git init
2-git add -A
3-git commit -m 'Add your commit message'
4-git remote add origin https://your_repo_link_here/sample.git
5-git push -u origin main
现在在提示(输入)处粘贴您的令牌
你完成了:)
【讨论】:
【参考方案2】:这几个代码的组合对我有用:
$ git reset
$ git remote -v
$ git pull --rebase
$ git init
$ git add -A
$ git commit -m "Add your commit"
$ git branch -M main
$ git push origin main --force
他们必须小心,如果他们有自述文件,git reset 会删除它们。
【讨论】:
【参考方案3】:检查您的互联网是否运行良好并且速度是否良好。
我尝试使用我的 4G 移动热点进行推送,并出现此错误近 10 分钟。
附:在印度,我们获得 4G 网络的 3G 速度,所以在做一些花哨的事情之前;看看是否有合理的速度可用:)
【讨论】:
【参考方案4】:由于最近的“用 GitHub 中的 main 替换 master”操作,如果您执行 git show-ref
,您可能会注意到有一个 refs/heads/main。因此,以下命令可能会从
git push heroku master
到
git push heroku main
这将解决您的问题
【讨论】:
【参考方案5】:我在 GitHub 帮助 (Dealing with non-fast-forward errors) 中找到了这个问题的解决方案:
您可以通过获取并合并在远程分支上所做的更改与您在本地所做的更改来解决此问题:
$ 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
【讨论】:
这是正常的过程,只要事情按预期工作。当 git 认为它已经像@rubyandcoffee 询问的那样是最新的时,它没有任何帮助。【参考方案6】:我尝试了“git push origin main”然后收到消息,然后我单独尝试了“git push”,但没有工作。我检查了我是否承诺确定(是)。我尝试了“拉”然后再次“推”,不。在开始一些特技之前,我刚刚关闭并打开了一个新终端,然后再次“推送”,它起作用了:p
【讨论】:
【参考方案7】:(注意:starting Oct. 2020,任何新存储库都是使用默认分支 main
创建的,而不是 master
。您可以使用 rename existing repository default branch from master
to main
。
2014 年答案的其余部分已更新为使用“main
”)
(以下假设github.com
本身没有关闭,正如eri0o 在the comments 中指出的那样:请参阅www.githubstatus.com
以确保)
如果 GitHub 存储库看到新的提交被推送到它,而您在本地工作时,我建议您使用:
git pull --rebase
git push
完整的语法是:
git pull --rebase origin main
git push origin main
With Git 2.6+(2015 年 9 月),完成后(一次)
git config --global pull.rebase true
git config --global rebase.autoStash true
一个简单的git pull
就足够了。
(注意:Git 2.27 Q2 2020,merge.autostash
也可用于您的常规拉取,无需变基)
这样,您将在新更新的origin/main
(或origin/yourBranch
:git pull origin yourBranch
)之上重播(--rebase
部分)本地提交。
在Git Pocket Book 的chapter 6 Pull with rebase 中查看更完整的示例。
我会推荐一个:
# add and commit first
git push -u origin main
这将在您的本地主分支与其上游分支之间建立跟踪关系。 之后,该分支的任何未来推送都可以通过简单的方式完成:
git push
见“Why do I need to explicitly push a new branch?”。
由于 OP 已经在 reset and redone its commit 之上 origin/main
:
git reset --mixed origin/main
git add .
git commit -m "This is a new commit for what I originally planned to be amended"
git push origin main
不需要pull --rebase
。
注意:git reset --mixed origin/main
也可以写成git reset origin/main
,因为--mixed
选项是使用git reset
时的默认选项。
【讨论】:
是否可以执行您建议的 git pull --rebase...?因为我已经完成了 > git reset --mixed origin/master > git add 。 > git commit -m "这是我最初计划修改的新提交" > git push origin master 建议在这里***.com/questions/18588974/… btw 你的回答看起来很有帮助,先生 对我来说,我只需要运行“git commit”。 :( 真的超级棒……下面的命令对我有用…… git reset --mixed origin/master git add 。 git commit -m "这是我最初计划修改的新提交" git push origin master 谢谢@VonCpan> 感谢它的工作!我一直在寻找这个解决方案的时间! 你的最后一组命令对我很有帮助。谢谢?【参考方案8】:如果您创建了一个空的 repo 并忘记使用,您也会收到此错误
git init
在推送你的第一个提交之前先。
【讨论】:
【参考方案9】:这些步骤对我有用:
切换到当前分支并拉取最新代码
重命名本地分支
git branch -m [new-name]
将本地分支推送到服务器
git push origin [new-name]
从服务器中删除分支
git push origin --delete [old-name]
【讨论】:
【参考方案10】:就我而言,我错过了修改,我只需要运行git commit --amend
然后推送。它解决了这个问题。它可能对以前提交过代码的人有所帮助。
【讨论】:
【参考方案11】:解决方案:
下载git bash 并在其上运行命令。终于成功了!
【讨论】:
【参考方案12】:在我们的例子中,重试推送解决了问题。可能是网络缓慢导致了此问题。
【讨论】:
【参考方案13】:git push -f origin master.
这是写的
【讨论】:
【参考方案14】:Github 将默认分支名称从 master
更改为 main
。
因此,如果您最近创建了 repo,请尝试推送 main
分支
git push origin main
这是一个常见的错误,初学者可以犯。
Github Article
【讨论】:
【参考方案15】:在我的情况下,git pre-push
挂钩存在问题。
运行git push --verbose
查看是否有错误。
仔细检查.git/hooks
目录中的 git-hooks 或暂时将它们移动到另一个地方,然后查看是否一切正常。
【讨论】:
【参考方案16】:我遇到了这个问题,但 2 天后我得到了解决方案。 如果您是第一次在 GitHub 页面上部署站点,只需运行这两个命令即可。
git commit -m "initial commit"
git push origin +HEAD
【讨论】:
【参考方案17】:就我而言,我拼错了分支的名称。在本地我做了类似的事情:
git push --set-upstream origin feture/my-feature
我的分支名称在feature
中缺少a
。我将其更正为:
git push --set-upstream origin feature/my-feature
一切正常。
【讨论】:
【参考方案18】:使用 Azure DevOps 中的 Git 存储库,问题在于分支策略要求对分支的所有更改都必须通过拉取请求进行。尝试将更改直接推送到分支会生成错误“无法将某些引用推送到...”。我创建了一个 PR 分支并毫无问题地推送。
【讨论】:
【参考方案19】:这可能不是一个常见的问题,但它发生在我身上,所以我会在这里添加它作为评论,以防其他人犯了我的错误。
我创建了一个自定义的预推送文件,但忘记以exit 0
结束它
这导致我收到“无法推送一些参考”错误。我在 pre-push hook 的末尾添加了exit 0
,当然,它现在可以正常工作了。
【讨论】:
【参考方案20】:因为也许没有什么可推动的(真的,没有什么可推动的)。这样做
git remote add origin https://github.com/donhuvy/accounting133.git
git remote -v
git add .
git commit -m"upload"
git push --set-upstream origin master
根据您的情况更改远程存储库 url。命令git remote -v
你可以跳过,只是为了检查。
【讨论】:
【参考方案21】:当远程服务器有一些在您的工作目录中不可用的额外提交时,就会出现此问题。以下是解决此问题的解决方案。
从远程服务器获取最新代码到本地然后推送
>git pull
>git push
直接强制推送到远程服务器。
>git push --force
如果 #1 不起作用,则使用 #2 选项
使用以下命令获取与推送相关的所有选项
> git push --help
【讨论】:
【参考方案22】:GitHub 将 master 改为 main 的事实让我遇到了这个问题。所以从现在开始,push to origin的解决方案是:
git push -u origin main
【讨论】:
你的意思是GitHub上的远程repo只有一个分支main,没有master?我在 GitHub 上创建了一个全新的 repo,它的主要分支仍然是...... master(现在)【参考方案23】:我在 GitHub 中创建了一个空仓库,并将我的代码保存在本地。我现在遇到了同样的问题,因为我遵循以下顺序,
git init
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git add .
git push -u origin master
问题是:我尝试在暂存我拥有的文件之前提交。
所以我们需要暂存文件然后提交。
这是正确的顺序。
git init
git add .
git commit -m 'Initial Commit'
git remote add origin https://github.com/kavinraju/Repo-Name.git
git push -u origin master
由于我先执行了错误的顺序,所以我只执行下面的命令
git add .
git commit -m 'Initial Commit'
git push -u origin master
【讨论】:
【参考方案24】:我按照以下步骤操作,它对我有用。
rm -rf .git
git init
git add .
git commit -m"first message"
git remote add origin "LINK"
git push -u origin master
【讨论】:
这是唯一对我有用的解决方案。 这是初学者的最终解决方案【参考方案25】:试试这个 git 命令,
git push origin master –f
git push origin master --force
【讨论】:
错误:无法生成 sh:没有这样的文件或目录致命:无法分叉【参考方案26】:最好使用rm -rf .git/hooks
,然后尝试 git push
【讨论】:
有趣,它在一个案例中帮助了我,显然没有提交源(不需要变基)。 你为什么要扔掉所有的钩子?可以先备份一下吗?【参考方案27】:在我的例子中,分支名称前缀已经存在于远程,所以基本上如果你有一个分支名称'fix',你不能推送另一个名称为'fix/new_branch_name'的分支,重命名分支解决了我的问题。
【讨论】:
【参考方案28】:git 错误:当本地存储库名称与相应的远程存储库名称匹配时,也无法将某些引用推送到。在将更改拉到远程存储库之前,请确保您正在处理正确的存储库对。如果您拼写错误并且想要删除本地存储库,请使用以下步骤
从 windows 中删除本地 repo
del /F /S /Q /A .git
rmdir .git
更正本地文件夹名称 (XXXX02
->XXXX20
) 或者如果它是新创建的存储库,请将其删除并重新创建存储库(XXXX02
存储库名称更改为 XXXX20
)。
git init
如果未映射,则使用远程仓库重新映射。
git remote add origin https://github.com/<username>/XXXX20.git
git push -u origin master
【讨论】:
【参考方案29】:我也遇到过同样的问题,通过以下步骤解决。
git init
git add .
git commit -m 'Add your commit message'
git remote add origin https://User_name@bitbucket.org/User_name/sample.git
(上面的urlhttps://User_name@bitbucket.org/User_name/sample.git指的是你的比特桶项目url)
git push -u origin master
提示
使用以下方法检查您的 git hub 帐户是否与本地 git 链接:
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
【讨论】:
【参考方案30】: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
【讨论】:
在推送您需要从存储库中提取的代码之前 你可以简单的写成 git pull --rebase origin master 这对我有用,有一个参考问题,这已解决。 错误:无法生成 sh:没有这样的文件或目录致命:无法分叉以上是关于git错误:无法将一些参考推送到远程的主要内容,如果未能解决你的问题,请参考以下文章