Git 为什么即使在我拉了之后,我的推也被拒绝了?

Git 为什么即使在我拉了之后,我的推也被拒绝了?,git,Git,通常我会使用gitk-all来尝试看看到底发生了什么,但这是在没有图形shell的linux机器上实现的。注意错误消息中的这一行: $ git branch master * portal $ git fetch $ git merge origin/portal Already up-to-date. $ git pull Already up-to-date. $ git push To git@github.com:ripper234/Commerce-Sciences.git !

通常我会使用gitk-all来尝试看看到底发生了什么,但这是在没有图形shell的linux机器上实现的。

注意错误消息中的这一行:

$ git branch
  master
* portal
$ git fetch
$ git merge origin/portal
Already up-to-date.
$ git pull
Already up-to-date.
$ git push
To git@github.com:ripper234/Commerce-Sciences.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:ripper234/Commerce-Sciences.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
您合并了门户分支,但您也在尝试推送master,因为默认情况下gitpush将尝试推送也存在于origin上的所有分支。试试这个:

! [rejected]        master -> master (non-fast-forward)

请注意错误消息中的这一行:

$ git branch
  master
* portal
$ git fetch
$ git merge origin/portal
Already up-to-date.
$ git pull
Already up-to-date.
$ git push
To git@github.com:ripper234/Commerce-Sciences.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:ripper234/Commerce-Sciences.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.
您合并了门户分支,但您也在尝试推送master,因为默认情况下gitpush将尝试推送也存在于origin上的所有分支。试试这个:

! [rejected]        master -> master (non-fast-forward)

一个手持终端的可能副本仅可作为gitk的替代品-全部是git log-oneline-graph-Decoration-全部是一个手持终端的可能副本仅可作为gitk的替代品-全部是git log-oneline-graph-Decoration-全部但是我已经在门户分支上了。。。git不推送当前分支吗?原来门户分支没有任何尚未推送的提交。我仍然感到困惑。@ripper234:git push将每个分支推送到远程中具有匹配名称的分支,只要远程端已经存在具有该名称的分支。如果您想将该行为更改为不那么令人惊讶的行为,请查看push.default配置选项的文档。@ripper234:如果origin中存在门户,我猜git push的行为将在推送master->master失败后停止。一般来说,总是指定要推送的分支或将push.default设置为tracking会安全得多。@MarkLongair-感谢您的澄清。应该使用上游,而不是跟踪不推荐使用的同义词。现在我了解了这种情况,我想我将保留默认行为——我实际上希望git push备份我所有的本地更改。但我已经在门户网站上了。。。git不推送当前分支吗?原来门户分支没有任何尚未推送的提交。我仍然感到困惑。@ripper234:git push将每个分支推送到远程中具有匹配名称的分支,只要远程端已经存在具有该名称的分支。如果您想将该行为更改为不那么令人惊讶的行为,请查看push.default配置选项的文档。@ripper234:如果origin中存在门户,我猜git push的行为将在推送master->master失败后停止。一般来说,总是指定要推送的分支或将push.default设置为tracking会安全得多。@MarkLongair-感谢您的澄清。应该使用上游,而不是跟踪不推荐使用的同义词。现在我了解了这种情况,我想我将保留默认行为——我实际上希望git push备份我所有的本地更改。