Git ! [被拒绝]主控->;船长(先取)

Git ! [被拒绝]主控->;船长(先取),git,github,git-push,Git,Github,Git Push,有没有好办法解释如何在Git中解析“![rejected]master->master(fetch first)” 使用此命令时,$git push origin master会显示一条错误消息 ! [rejected] master -> master (fetch first) error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git' 答案就在那里,git告诉你先去拿 可能已经有人推到m

有没有好办法解释如何在Git中解析“
![rejected]master->master(fetch first)”

使用此命令时,
$git push origin master
会显示一条错误消息

! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:zapnaa/abcappp.git'

答案就在那里,git告诉你先去拿

可能已经有人推到master了,而您的提交已经落后了。因此,您必须获取、合并变更集,然后才能再次推送

如果不这样做(或者更糟糕的是,如果使用
--force
选项强制执行),则可能会弄乱提交历史记录

编辑:我对最后一点进行了更详细的介绍,因为这里的一个家伙刚刚给出了使用
--force
选项的非常糟糕的建议

由于git是一个DVCS,理想情况下,许多其他开发人员都在使用同一个存储库(或其分支)与您从事相同的项目。如果您使用变更集强制覆盖,您的存储库将与其他人的不匹配,因为“您重写了历史”。你会让其他人不高兴,存储库也会受到影响。也许世界上的小猫也会哭

TL;博士

  • 如果要求解,请先获取(然后合并)
  • 如果您想黑客攻击,请使用
    --force
    选项 但你要的是前者。始终使用git,即使您将始终自己使用git,因为这是一个很好的实践。

    试试这个git命令

    git push origin master --force
    
    或力不足
    -f


    git push origin master-f

    您应该使用
    git pull
    ,这是执行
    git fetch
    的命令,然后执行
    git merge


    如果使用
    git push origin master--force
    命令,将来可能会出现问题。

    pull始终是正确的方法,但在尝试将无git文件系统转换为Github存储库时可能会出现一个例外。在那里,您必须强制第一次提交

    git init
    git add README.md
    git add .
    git commit -m "first commit"
    git remote add origin https://github.com/userName/repoName.git
    git push --force origin master
    
    尝试:

    在写了这段代码之后,我收到了另一个错误:(非快进)

    我写这段代码:

    git fetch origin master:tmp
    git rebase tmp
    git push origin HEAD:master
    git branch -D tmp
    

    并解决了我的问题

    很可能是其他人(例如您的同事)将提交提交到了不在本地
    master
    分支中的
    origin/master
    ,而您正试图将一些提交从本地分支推送到服务器。在99%的情况下,假设您不想从
    源文件
    中删除他们的工作,您有两种选择:

    2) 将其更改合并到本地分支中,然后推送合并结果<代码> git签出主机 git pull#在此处解决冲突 git推送

    (注意,
    git pull
    在本例中本质上只是一个
    git fetch
    和一个
    git merge

    1) 重新设置本地分支的基础,使其看起来像是您的同事先进行了提交,然后您进行了提交。这使提交历史保持良好的线性-并避免“合并提交”。但是,如果您与同事的更改有冲突,则在最坏的情况下,您可能必须为每次提交(而不是仅一次)解决这些冲突。从本质上说,这对其他人更好,但对你更努力。
    
    git pull--重新设置基础#在此处解决冲突
    git推送
    


    (请注意,
    git-pull--rebase
    本质上是一个
    git-fetch
    和一个
    git-rebase-origin/master

    有时在复制文件时会发生这种情况,通常是自述文件。

    您可以使用以下命令: 首先使用--mirror标志克隆回购协议的新副本:

    $ git clone --mirror git://example.com/some-big-repo.git
    
    然后按照相应的代码进行操作:

    即使这不起作用,您也可以简单地编写代码:

    $ git push origin master --force 
    


    您的错误可能是因为合并分支。
    只需遵循以下步骤:

    第1步:
    git pull origin master
    (如果您收到任何消息,请忽略它)
    第二步:
    git添加。

    第3步:
    git commit-m'您的提交消息'

    第4步:
    git推送原始主机

    这对我来说很有效:

    $ git add .
    $ git commit -m "commit"
    $ git push origin master --force
    

    正如错误消息中所述,您必须“先获取”。这对我很有效。 使用以下命令:

  • git获取原始主机
  • 然后按照以下步骤进行合并:

  • git拉入原点主控器
  • git添加。
  • git提交-m'您的提交消息'
  • git推送原始主机

  • 按照下面给出的步骤操作,因为我也遇到了同样的问题:

    $ git pull origin master --allow-unrelated-histories 
    
    (查看本地分支是否可以轻松地与远程分支合并)


    (现在将本地git存储库的全部内容推送到您的在线存储库中)

    我通过签出这样一个新分支来克服这个问题:

    # git checkout -b newbranch <SHA of master>
    
    # git branch
    * newbranch
      master
    
    # git push -u <repo_url_alias> newbranch
    
    #git签出-b newbranch
    #吉特分行
    *新牧场
    主人
    #git push-u newbranch
    

    剩下两个分支:Master和newbranch,您可以稍后合并。

    您只需在远程名称的同时提及您的分支名称。

    git fetch origin
    git merge origin/master
    

    在我的案例中发生这种情况的原因是,在创建GitHub rep链接时,我使用自述文件对其进行了初始化

    在创建Git remote时,不要使用自述文件初始化它,否则它将显示err

    不要那样做&它肯定会很好用的
    如果您希望在推到主分支后使用readme文件初始化它,这对我有效,因为没有其他解决方案对我有效。 甚至不用武力

    只需要经历Git Bash

    cd REPOSITORY-NAME
    git add .
    git commit -m "Resolved merge conflict by incorporating both suggestions."
    
    然后回到我的cmd,我可以:
    git推heroku master
    ,这就是我的问题所在。

    最快的解决方案-

  • 做一个git日志-> 您将看到,在您提取最新的代码库时,可能有人发布了一些代码
  • 做一个git拉-重设基址,首先,倒回head,在上面重放您的工作,然后将您提交的更改应用于相同的工作
  • 您现在已经准备好进行git推送了
  • 同样适用于
    # git checkout -b newbranch <SHA of master>
    
    # git branch
    * newbranch
      master
    
    # git push -u <repo_url_alias> newbranch
    
    git fetch origin
    git merge origin/master
    
    cd REPOSITORY-NAME
    git add .
    git commit -m "Resolved merge conflict by incorporating both suggestions."