git错误:未能将一些引用推送到远程

我现在不能推,虽然我昨天可以做。

当我使用git push origin master时,我得到一个错误:

$ git remote -vorigin  https://github.com/REDACTED.git (fetch)origin  https://github.com/REDACTED.git (push)
$ git push origin masterUsername for 'https://github.com': REDACTEDPassword for 'https://REDACTED@github.com':To https://github.com/REDACTED.git! [rejected]         master -> master (non-fast-forward)error: failed to push some refs to 'https://github.com/REDACTED.git'hint: Updates were rejected because the tip of your current branch is behindhint: its remote counterpart. Integrate the remote changes (e.g.hint: 'git pull ...') before pushing again.hint: See the 'Note about fast-forwards' in 'git push --help' for details.

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

Windows文件夹的截图,其中包含以下目录:. git、css、js。这些文件:index.php、自述文件、setsu.php.带有箭头的单词本地指向css文件夹。下面是标题为

2501444 次浏览

(注意:从2020年10月,任何新的存储库都是使用默认分支main创建的,而不是master。您可以将现有存储库默认分支从#1重命名为#0
2014年答案的其余部分已更新为使用“main”)

(以下假设github.com本身是没有向下,正如eri0o的评论中指出的:请参阅www.githubstatus.com以确定)

如果GitHub存储库在您在本地工作时看到新的提交被推送到它,我建议使用:

git pull --rebasegit push

完整的语法是:

git pull --rebase origin maingit push origin main

使用git 2.6+(2015年9月),完成后(一次)

git config --global pull.rebase truegit config --global rebase.autoStash true

一个简单的git pull就足够了。
(注意:对于Git 2.27 Q2 2020merge.autostash也可用于您的常规拉取,无需rebase)

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

请参阅Git Pocket Book第6章用rebase拉中更完整的示例。

我建议a:

# add and commit first#git push -u origin main
# Or git 2.37 Q2 2022+git config --global push.autoSetupRemote truegit push

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

git push

同样,对于Git 2.37+及其全局选项#0,一个简单的git push即使对于第一个也会做同样的事情(即:在本地main分支和其上游分支origin/main之间建立跟踪关系)。

见“为什么需要显式推送新分支?”。


由于OP已经重置并重做其提交origin/main之上:

git reset --mixed origin/maingit 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时的默认选项。

我在GitHub help(处理非快进错误)中找到了这个问题的解决方案:

您可以通过获取并合并在远程分支上所做的更改与您在本地所做的更改来解决此问题:

$ git fetch origin# Fetches updates made to an online repository$ git merge origin branch# Merges updates made online with your local work

或者,您可以简单地使用git拉一次执行这两个命令:

$ git pull origin branch# Grabs online updates and merges them with your local work

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

如果您使用的是Gerrit,这可能是提交中不适当的Change-id造成的。尝试删除Change-Id,看看会发生什么。

请记住在推送到GitHub存储库之前提交您的更改。这可能会解决您的问题。

我遇到了同样的问题。我遇到这个问题是因为我没有做任何提交,甚至没有一个初始提交,我仍然在努力推动。

一旦我做了git commit -m "your msg",一切都很好。

尝试:

git push -f origin master

这应该能解决问题。

基于@Mehdi的评论,对—force pushing的澄清:上面的Git命令仅适用于第一次提交。如果之前已经有提交、拉取请求或分支,这将重置所有这些并将其从零设置。如果是这样,请参考@VonC的详细答案以获得更好的解决方案。

如果您使用的是git-with-ssh,它不起作用的一个原因是它可能指向错误的ssh-private-key文件或correct-file-wrong-private-key。如果我没记错的话,我最近添加了ssh-private-key有些困难。所以我通过

ssh-add -D

然后一切都奏效了!

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

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

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

这对我有用。

当本地存储库名称与相应的远程存储库名称匹配时,也会出现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/<username>/XXXX20.git
  7. git push -u origin master

我不确定这是否适用,但我的解决方案是在gitinit之后在本地提交一些东西。然后我使用#设置上游推送到远程。

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

  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 'Added my project'

  6. git pull --rebase origin master

  7. git push origin master

创建一个新分支为我解决了这个问题:

git checkout -b <nameOfNewBranch>

正如预期的那样,由于前一个分支完全包含在新分支中,因此不需要合并。

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

尝试创建一个文件:

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

这将放置一个名为初始的文件,您可以稍后删除该文件。

你需要给点力量

只要用力推。

用途:

git push origin {your_local_branch}:{your_remote_branch}

如果您的本地分支和远程分支共享相同的名称,那么您可以省略您的本地分支名称。只需使用git push {your_remote_branch}。否则它会抛出此错误。

我遇到了同样的问题,并通过以下步骤解决了它。

  1. git init

  2. git add .

  3. git commit -m 'Add your commit message'

  4. git remote add origin https://User_name@bitbucket.org/User_name/sample.git

    (上面的URL,https://User_name@bitbucket.org /User_name/sample.git,指的是您的比特桶项目URL)

  5. git push -u origin master

提示

使用以下命令检查您的GitHub帐户是否与本地Git存储库链接:

git config --global user.email "you@example.com"git config --global user.name "Your Name"

源树用户

首先做一个初始提交,或者确保你没有任何未提交的更改。然后在Sourcetree的旁边有一个“REMOTES”。右键单击它,然后单击“推送到原点”。就是这样。

在我的情况下,是我的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 ELOCKVERIFYnpm 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并提交它,问题就解决了。

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

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

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

git add .

git commit -m "your msg"

在我的情况下,问题是(奇怪的是)没有名为大师的分支。我从GitHub获取了存储库。

我正在推送一个有错字的现有分支,“”,我还没有检查出来,相反,我想推送一个名为“信封”的分支。

因此,分支必须存在并在本地工作副本中签出,以便能够被推送。因此,解决该错误的方法是不要拼写错误。

做这些:

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

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

它是test/testing_routes,我需要将其更改为testing_route,其中远程不允许正斜杠(/)。

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

在我的例子中,分支名称前缀已经存在于远程,所以基本上,如果你有一个分支名称“修复”,你就不能推送另一个名称为“修复/new_branch_name”的分支。

重命名分支解决了我的问题。

最好使用rm -rf .git/hooks,然后尝试git ush

试试这个Git命令,

git push origin master –fgit push origin master --force

我遵循以下步骤,它对我有效。

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

我在GitHub中创建了一个空存储库,并在本地保存了我的代码。我现在遇到了同样的问题,因为我遵循了以下顺序,

git initgit commit -m 'Initial Commit'git remote add origin https://github.com/kavinraju/Repo-Name.gitgit add .git push -u origin master

问题是:我尝试提交之前暂存我拥有的文件。

所以我们需要把文件放好然后提交

这是正确的顺序。

git initgit add .git commit -m 'Initial Commit'git remote add origin https://github.com/kavinraju/Repo-Name.gitgit push -u origin master

由于我先执行了错误的序列,我只是执行了以下命令:

git add .git commit -m 'Initial Commit'git push -u origin master

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

  1. 要将最新代码从远程服务器获取到本地然后推送,请执行

    git pullgit push
  2. 直接执行强制推送到远程服务器。

    git push --force

如果#1不起作用,则使用#2选项。

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

git push --help

GitHub把大师改成主要的事实让我遇到了这个问题。所以从现在开始,推送到源的解决方案是:

git push -u origin main

因为也许它没有什么可推动的(真的,没有什么可推动的)。像这样做:

git remote add origin https://github.com/donhuvy/accounting133.gitgit remote -vgit add .git commit -m"upload"git push --set-upstream origin master

在您的情况下更改远程存储库的URL。您可以跳过命令git remote -v,只是为了检查。

我创建了一个自定义的预推送文件,我忘了用exit 0结束它。

这导致我得到这个“未能推送一些引用”错误。我在我的预推送钩子的末尾添加了exit 0,当然,它现在工作正常。

Azure运营模式中使用Git存储库时,问题是分支策略要求对分支的所有更改必须通过拉取请求(PR)进行。尝试将更改直接推送到分支会生成错误“未能将一些引用推送到…”。

我创建了一个PR分支并毫无问题地推动。

在我的例子中,我拼错了分支机构的名称。在本地,我做了类似的事情:

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

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

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

一切都很顺利。

如果您是第一次在GitHub页面上部署站点,只需运行这两个命令。

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

在我的例子中,Gitpre-push钩子有问题。

运行git push --verbose查看是否有任何错误。

仔细检查目录.git/hooks中的Git钩子或将它们临时移动到另一个地方,看看之后是否一切正常。

GitHub将默认分支名称从大师更改为主要。因此,如果您最近创建了存储库,请尝试推送主要分支。

git push origin main

这是初学者容易犯的错误。

GitHub文章从master重命名默认分支

使用

git push -f origin master

这个是写的。

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

在我的情况下,我错过了修改。我只需要运行git commit --amend然后推送。它修复了这个问题。它可能会帮助以前提交过代码的人。

这些步骤为我工作:

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

  2. 重命名本地分支

    git branch -m [new-name]

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

    git push origin [new-name]

  4. 从服务器中删除分支

    git push origin --delete [old-name]

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

git init

在你第一次提交之前。

我尝试了“git推送源主”,然后收到了消息。然后我单独尝试了“git推送”,但它不起作用。

我检查了我是否已经承诺确定(是)。我尝试了拉,然后又推,但没有。

在开始一些特技之前,我只是关闭并打开一个新终端,然后再次“推动”,它起作用了:p

由于最近的“在GitHub中将大师替换为主要”操作,您可能会注意到如果您执行git show-ref,则会有一个refs/head/main。因此,以下命令可能会从

git push heroku master

git push heroku main

这将解决你的问题。

检查您的Internet连接是否正常工作并且速度良好。

我试图推动我的4g移动热点,并得到这个错误近10分钟。

P. S.在印度,我们的4G网络速度为0,所以在做一些花哨的事情之前;看看是否有合理的速度可用:)

它与几个命令行的组合对我很有效:

git resetgit remote -vgit pull --rebasegit initgit add -Agit commit -m "Add your commit"git branch -M maingit push origin main --force

小心。如果他们有自述文件,git reset会删除它们。

git push -u origin main上出现错误?尝试此解决方案。它将100%工作。

git pushOriemaster,改成git Push Orise主推

如何更改主?

git分支-M main

如果您使用的是git push origin master,请将其更改为git push origin main,反之亦然。

我在使用命令时也遇到过这个问题。

git push -u origin main

所以我使用npm cache clean --force清除了npm的所有缓存并再次尝试推送。这对我有用。

对于我来说,我忘记了在点击推送之前添加和提交。

所以:

git add --allgit commit -m "First commit."

然后推它,你很好去:)

您的推送是否与您的jira故事相关联。如果是,请检查jira工作流程条件。管理员可以配置为仅允许基于某些工作流程的推送。

在我的情况下,这两条线解决了问题。

git add .git commit -m "Changes"

实际上,我忘记了添加和提交我的更改,只是第一次尝试推送它。

git initgit remote add origin https://github.com/anything/repo-name.gitgit add .git commit -m "Changes"git branch -M maingit push -u origin main

希望这有帮助!

尝试与

git status

它会像这样显示你的分支是基于“起源/主要”,但上游已经消失了。

然后按照以下步骤

git branch --unset-upstreamgit push --set-upstream origin main

按照留档,你只需要pullpush到你的Github项目。

git init -b main
git add . && git commit -m "Commit Here"
git remote add origin  <REMOTE_URL>
git remote -v
git pull origin main
git push origin main

推送步骤:

git initgit add README.md      -------- or --------   git add .git commit -m "first commit"git remote add origin 'http github link'git push -u origin main       ------ or -------    git push -f origin master

如果分支在main上,因此:

git push -u origin main

大师:

git push -f origin master

我的回答不是针对这个具体问题,但可能会帮助有同样错误的人。如果您在空目录上执行add .commitpush,您可能会遇到同样的错误。构建Github存储库后,在本地目录中运行这些代码。重点是您需要添加/创建一个文件并提交此更改,然后再将存储库推送到远程。

echo "# something" >> README.mdgit initgit add README.mdgit commit -m "first commit"git branch -M maingit remote add origin https://github.com/[address of your repository].gitgit push -u origin main

我得到这个错误,因为我试图在没有提交的情况下推送尝试了

git add

git提交-m"消息"

git push-f

那对我来说效果不错