git错误:无法推送一些引用

时间:2014-06-09 06:21:27

标签: git github

出于某种原因,我现在无法推动,而我昨天可以做到。 也许我搞砸了一些东西。

这就是:

当我使用git push origin master

gitbashscr

我的工作目录和远程存储库是什么样的:

enter image description here

52 个答案:

答案 0 :(得分:401)

如果GitHub回购已经看到新提交,当你在本地工作时,我建议使用:

git pull --rebase
git push

完整语法为:

git pull --rebase origin master
git push origin master

这样,您可以在新更新的--rebase(或origin/masterorigin/yourBranch)之上重播(git pull origin yourBranch部分)您的本地提交。

chapter 6 Pull with rebaseGit Pocket Book中查看更完整的示例。

我会建议:

git push -u origin master

这将在您的本地主分支与其上游分支之间建立跟踪关系 在那之后,任何未来对该分支的推动都可以通过简单的方式完成:

git push

请参阅“Why do I need to explicitly push a new branch?”。


由于OP已在origin/master之上reset and redone its commit

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时的默认选项。

答案 1 :(得分:56)

有没有人尝试过:

git push -f origin master

那应该可以解决问题。

  

编辑:根据@Mehdi的评论,我需要澄清一些关于—force pushing的内容。上面的git命令仅对第一次提交安全地工作。如果已经有提交,在之前提取请求或分支,则会重置所有提交并将其设置为零。如果是这样,请参阅@VonC的详细答案以获得更好的解决方案。

答案 2 :(得分:30)

如果您刚刚使用git init并添加了git add .或类似内容的文件并添加了远程分支,则可能是您尚未提交(git commit -m 'commit message')任何内容本地推送到远程...我只是有这个错误,这是我的问题。

答案 3 :(得分:19)

我有同样的问题。我遇到了这个问题,因为我没有做任何提交甚至没有初始提交,但我仍然试图推动。

一旦我git commit -m "your msg",然后一切正常。

答案 4 :(得分:12)

我在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

答案 5 :(得分:7)

重命名你的分支,然后按,例如:

git branch -m new-name
git push -u new-name

这对我有用。

答案 6 :(得分:6)

我按照以下步骤操作,对我有用。

 rm -rf .git
 git init
 git add .
 git commit -m"first message"
 git remote add origin "LINK"
 git push -u origin master

答案 7 :(得分:4)

如果您使用的是gerrit,这可能是由于提交中的不合适的Change-id引起的。尝试删除Change-Id,看看会发生什么。

答案 8 :(得分:4)

在推送之前不提交初始更改也会导致问题

答案 9 :(得分:4)

1)git init

2)git远程添加来源https://gitlab.com/crew-chief-systems/bot

3)git remote -v(用于检查当前存储库)

4)git add -A(添加所有文件)

5)git commit -m'添加了我的项目'

6)git pull --rebase原始主机

7)git push origin master

答案 10 :(得分:3)

在推送之前,您必须添加并提交更改,或执行git push -f origin master

答案 11 :(得分:3)

我在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

答案 12 :(得分:3)

请记得在推送到Github repo之前提交您的更改。这可能会解决您的问题。

答案 13 :(得分:2)

试试这个git命令,

git push origin master –f
git push origin master --force

答案 14 :(得分:2)

对我来说,问题是,我没有在提交之前添加文件。

git add .

git commit -m "your msg"

答案 15 :(得分:2)

就我而言,git library(DBI) library(ROracle) drv <- dbDriver("Oracle") connect.string <- paste( "(DESCRIPTION=", "(ADDRESS=(PROTOCOL=tcp)(HOST=", host, ")(PORT=", port, "))", "(CONNECT_DATA=(SERVICE_NAME=", svc, ")))", sep = "") DB <- dbConnect(drv, username = "username", password = "password", dbname = connect.string) req = dbGetQuery(DB, "SELECT id_cli FROM t_client") selectInput(inputId = "id_cli", label = "List of clients", choices = req$id_cli) Input <- reactive({ dbGetQuery(DB, sprintf("SELECT id_cli, name_cli from t_client WHERE id_cli ='%s'", input$id_cli)) }) renderTable( { Input() }) 钩存在问题。

运行pre-push,看是否有错误。

仔细检查目录git push --verbose中的git-hooks或将其临时移动到另一个位置,然后查看一切是否正常。

答案 16 :(得分:1)

git push -f origin master.

这是写的

答案 17 :(得分:1)

因为可能没有什么可推动的(实际上,没有什么可推动的)。这样做

git remote -v

根据您的情况更改远程存储库URL。命令wget http://secret.com/cert.der sudo security add-trusted-cert -d \ -r trustRoot \ -k /Library/Keychains/System.keychain ./cert.der rm ./cert.der 可以跳过,仅用于检查。

答案 18 :(得分:1)

做这些

git rm --cached *
git add .
git commit -m"upload"
git push --set-upstream origin master

编码愉快!

答案 19 :(得分:1)

在Azure DevOps中使用Git存储库,问题是分支策略要求对分支的所有更改都必须通过请求请求进行。尝试将更改直接推送到分支会产生错误“无法将某些引用推送到...”。我创建了一个PR分支,并顺利进行了推送。

答案 20 :(得分:1)

当您没有任何文件时,可能会发生这种情况。 尝试创建一个文本文件,然后按照以下命令

git add .
git commit -m "first commit"
git push --set-upstream origin master

答案 21 :(得分:1)

GitHub将master更改为main的事实使我遇到了这个问题。因此,从现在开始,解决原始问题的方法是:

git push -u origin main

答案 22 :(得分:1)

我也遇到了同样的问题,并通过以下步骤进行了修复。

  1. git init

  2. git 添加。

  3. git commit -m'添加您的提交消息'
  4. git 远程添加来源https://User_name@bitbucket.org/User_name/sample.git

    (URL https://User_name@bitbucket.org/User_name/sample.git上方是您的存储桶项目url)

  5. git 推-u原始母版 提示:使用以下命令检查您的git hub帐户是否与本地git链接: git config --global user.email "you@example.com"
      

    git config --global user.name "Your Name"

答案 23 :(得分:1)

不确定这是否适用,但我的修复是在git init之后在本地提交一些内容。然后我使用--set-upstream ...

推送到远程

答案 24 :(得分:1)

这为我解决了这个确切的问题:

git pull --rebase origin master
git push origin master

答案 25 :(得分:0)

当远程服务器有一些额外的提交(在您的工作目录中不可用)时,就会出现此问题。以下是解决此问题的解决方案。

  1. 要将最新代码从远程服务器获取到本地,然后按入

    >git pull
    >git push
    
  2. 直接将力推到远程服务器。

    >git push --force
    

    如果#1无效,则使用#2选项

    使用以下命令获取与推送相关的所有选项

    > git push --help
    

答案 26 :(得分:0)

我遇到了这个问题,但是两天后我得到了解决方案。 如果您是第一次在GitHub页面上部署网站,只需运行这两个命令。

git commit -m "initial commit"
git push origin +HEAD

答案 27 :(得分:0)

我尝试了 'git push origin main' 然后得到了消息,然后我单独尝试了 'git push',没有工作。我检查了我是否已承诺确定(是的)。我再次尝试了“拉”然后“推”,不。在开始一些特技之前,我刚刚关闭并打开了一个新终端,然后再次“推”,它起作用了:p

答案 28 :(得分:0)

这可能不是一个普遍的问题,但是它发生在我身上,所以我将其添加为注释,以防其他人犯了我的错误。

我创建了一个自定义的预推送文件,但忘记了以select coalesce(max("timestamp"), '0001-01-01T00:00:00'::timestamp) from "log"; 结尾

这使我收到“无法推送一些裁判”错误。我在预推钩的末尾添加了exit 0,当然,现在可以正常使用了。

答案 29 :(得分:0)

就我而言,我拼错了分支的名称。我在本地做了类似的事情:

git push --set-upstream origin feture/my-feature

我的分支名称缺少a中的feature。我将其更正为:

git push --set-upstream origin feature/my-feature

一切正常。

答案 30 :(得分:0)

Github将默认分支名称从master更改为main。 因此,如果您最近创建了该存储库,请尝试推动main分支

git push origin main

这是一个常见的错误,初学者可以犯。

Github Article

答案 31 :(得分:0)

在我们的例子中,重试推送解决了问题。可能是网络缓慢导致了该问题。

答案 32 :(得分:0)

就我而言,我错过了修改,我只需要运行 git commit --amend 然后推送。它解决了这个问题。它可能对以前提交过代码的人有所帮助。

答案 33 :(得分:0)

这些步骤对我有用:

  1. 切换到当前分支并拉取最新代码

  2. 重命名本地分支

    git branch -m [new-name]

  3. 推送本地分支到服务器

    git push origin [new-name]

  4. 从服务器上删除分支

    git push origin --delete [old-name]

答案 34 :(得分:0)

如果你创建了一个空的仓库并且忘记使用,你也会得到这个错误

git init

在推送您的第一次提交之前首先。

答案 35 :(得分:0)

在我的情况下,分支名称前缀已经存在于远程服务器上,因此,基本上,如果您具有分支名称“ fix”,则无法推送名称为“ fix / new_branch_name”的另一个分支,重命名分支可以解决我的问题。

答案 36 :(得分:0)

如果您尝试使用现有的GitHub存储库初始化目录,则应确保提交更改。

尝试创建文件:

touch initial
git add initial
git commit -m "initial commit"
git push -u origin master

这将放置一个名为initial的文件,您以后可以删除它。

希望这个答案有帮助!祝你好运!

答案 37 :(得分:0)

git push origin {your_local_branch}:{your_remote_branch}

如果本地分支机构和远程分支机构共享相同的名称,则可以省略本地分支机构名称,只需使用git push {your_remote_branch}。否则它将引发此错误。

答案 38 :(得分:0)

对于sourcetree用户

首先进行初次提交,或者确保您没有未提交的更改,然后在sourcetree的旁边有一个“ REMOTES”,右键单击它,然后单击“ Push to origin”。你去那里。

答案 39 :(得分:0)

就我而言,这是我的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://username@bitbucket.org/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 loopback-utils@0.8.3 does not satisfy loopback-utils@^0.9.0

运行npm install并提交,问题已解决。

答案 40 :(得分:0)

发生这种情况是因为我有一个与分支相同的标签,并且我试图将分支推到远程。

答案 41 :(得分:0)

在我的情况下,问题是(奇怪地)没有名为master的分支。我从Github取得了资料库。

答案 42 :(得分:0)

我正在推送现有的错字“ evelop”分支,但我尚未结帐,相反,我想推送一个名为“ envelope”的分支。因此,分支必须在本地工作副本中存在/签出,以便当然进行推送,因此不会出现错字。

答案 43 :(得分:0)

不幸的是,我无法用其他解决方案解决问题,但是我的问题是我要推送的分支名称未被远程接受。我将其更改为正确的格式并接受。

它是test/testing_routes,需要将其更改为testing_route,远程用户不允许/

您应确保分支名称格式正确。

答案 44 :(得分:0)

最佳使用rm -rf .git/hooks,然后尝试git push

答案 45 :(得分:-1)

您需要施加一些力量

只需推动--force。

答案 46 :(得分:-1)

创建新分支对我来说解决了

git checkout -b <nameOfNewBranch>

正如预期的那样,由于以前的分支已完全包含在新分支中,因此无需合并。

答案 47 :(得分:-1)

解决方案:

下载 git bash 并在其上运行命令。终于成功了!

答案 48 :(得分:-1)

git错误:当本地存储库名称与相应的远程存储库名称匹配时,也无法推送一些引用。在将更改提取到远程存储库之前,请确保您正在使用正确的存储库对。如果您拼写错误并且想要删除本地存储库,请使用以下步骤

从Windows中删除本地存储库 1. del / F / S / Q / A.git 2. rmdir .git 3.更正本地文件夹名称(XXXX02-&gt; XXXX20)或如果它是新创建的仓库,请将其删除并重新创建仓库(XXXX02回购名称更改为XXXX20)。 4. git init 5.如果未映射,则使用远程仓库重新映射。 6. git remote add origin https://github.com/ / XXXX20.git 7. git push -u origin master

答案 49 :(得分:-1)

在我的情况下,关闭编辑器(visual studio code)解决了一个问题。

答案 50 :(得分:-1)

在我的情况下,发生此错误是因为我们的GitLab版本发生了一些维护。

答案 51 :(得分:-1)

好吧,如果上述答案都没有起作用,并且你最近弄错了ssh-add。尝试

ssh-add -D