无法推送到gitlab,失败并被拒绝

时间:2018-10-25 03:13:21

标签: gitlab git-commit git-push git-pull git-fetch

  

已被拉出,结果仍然是错误! [rejected] dev->dev(non-fast-forward)

D:\PPI_Roketin\Project\astrowatch (dev)
λ git add resources/views/reals/_form.blade.php

D:\PPI_Roketin\Project\astrowatch (dev)
λ git commit -m "resources/views/reals/_form.blade.php"
[dev db5ac99] resources/views/reals/_form.blade.php
1 file changed, 2 insertions(+), 2 deletions(-)

D:\PPI_Roketin\Project\astrowatch (dev)
λ git push origin dev
To gitlab.com:roketin-stellar/astrowatch.git
! [rejected]        dev -> dev (non-fast-forward)
error: failed to push some refs to 'git@gitlab.com:roketin- stellar/astrowatch.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: 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.
  

这样的错误,为什么?

enter image description here

  

已经执行了git checkout,并重复了该命令,仍然像上面一样错误

3 个答案:

答案 0 :(得分:2)

这是经典的git错误。错误消息Updates were rejected because the tip of your current branch is behind中描述了该问题,这意味着对本地没有的远程分支进行了更改。有很多方法可以解决此问题,其中一种方法也在git消息中描述:Integrate the remote changes (e.g. hint: 'git pull ...') before pushing again.

如果您进行git pull origin dev,这会将对远程所做的任何更改合并到本地分支。解决合并冲突后,即可推送分支。

另一种选择是通过执行git pull --rebase origin dev来运行基准,这将带来远程更改并在远程提交的基础上重新确定您的提交。这将使git历史更清晰。

目前最简单的方法可能只是执行一个git pull,然后在正确合并后将其推送到您的遥控器。

我绝对建议您研究git命令并学习如何在文档中正确找到资源。在线上有很多可用的东西。

答案 1 :(得分:1)

您可以尝试git reset --hard HEAD
请注意:
HEAD指向您当前的分支(或当前提交),因此git reset --hard HEAD要做的就是丢弃您的所有未提交的更改。

答案 2 :(得分:0)

这很容易解释,如果要提交,则需要与远程分支保持最新,并且git pull会覆盖您已对其进行更改的文件。您应该首先提交更改。