git push说拒绝但是经历了

时间:2017-05-19 10:53:08

标签: git github

我遇到的问题与通常在某些时候重写历史记录引起的问题不同。让我告诉你。

我在ecoes-poc分支上,在远程对手之前提交了一个:

$ git log
917f264f  21 hours  xxx   (HEAD -> ecoes-poc) commit message
b2a6ce0e  2 days    xxx   (origin/ecoes-poc)  another commit message

此时我修改了最后一次本地提交,然后尝试推送:

$ git push
Counting objects: 14, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (14/14), 1.85 KiB | 0 bytes/s, done.
Total 14 (delta 10), reused 0 (delta 0)
remote: Resolving deltas: 100% (10/10), completed with 9 local objects.
To some-repo.git
   b2a6ce0e..aba1574b  ecoes-poc -> ecoes-poc
 ! [rejected]          master -> master (non-fast-forward)
error: failed to push some refs to 'some-repo.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我以为其他人在我之前推到了远程ecoes-poc,去了GitHub并且惊讶地看到我被拒绝的提交在最顶层,并且没有其他人有任何推动。回到shell和git日志:

~ $ git log
a3bf26cc  21 hours  xxx   (HEAD -> ecoes-poc, origin/ecoes-poc) commit message
b2a6ce0e  2 days    xxx   another commit message

如图所示,origin/ecoes在提交git上就是说它被拒绝了,它也在GitHub上。

所以我发现很难回答两个问题:

  1. 为什么它首先被拒绝了?
  2. 虽然git拒绝了推送,但是提交最终是在origin / ecoes分支上,还是在GitHub上?

1 个答案:

答案 0 :(得分:0)

正如您在错误消息中看到的那样:

To some-repo.git
   b2a6ce0e..aba1574b  ecoes-poc -> ecoes-poc
 ! [rejected]          master -> master (non-fast-forward)

master的推动被拒绝,推送到ecoes-poc 它不是一个全有或全无的东西,但每次推送ref是否被拒绝,至少在你的情况下。

因此,当ecoes-poc没有master时,git push会有你的推动。

如果在没有任何其他参数的情况下调用push.default,则推送的内容由配置变量matching定义。您可以在https://git-scm.com/docs/git-config#git-config-pushdefault了解其值。显然你已经将它设置为matching,这是唯一一个比当前分支更多的选项,即所有名称匹配分支。如果没有,那么您可能会使用一个非常古老的Git版本,其中class ControllerName extends Controller { public $variable = 'value'; public $AnotherVariable = ''; public function __construct(){ $this->variable = 'someother value'; $this->anothervariable = $this->getSubCategories3d(); } public function searchCategory($request) { return view('pages.blog', [ 'articles' => $articles, 'orientation' => $this->getOrientation(), 'subCategoriesWeb' => $this->getSubCategoriesWeb(), 'subCategories2d' => $this->getSubCategories2d(), 'subCategories3d' => $this->anothervariable ]); } } 是默认行为。在这种情况下你应该更新Git。