2

我意识到我设置user.name错了,所以我用这个答案来修复不正确的提交。在本地,它工作得很好。但是,git 现在告诉我

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 15 and 15 different commits each, respectively.
#   (use "git pull" to merge the remote branch into yours)
#
nothing to commit, working directory clean

所以,现在我需要以某种方式将我的更改发送到我的 GitHub 存储库,但是当我推送时:

$ git push
WARNING: gnome-keyring:: couldn't connect to: /run/user/mspencer/keyring-uscL41/pkcs11: No such file or directory
Username for 'https://github.com': iBeliever
Password for 'https://iBeliever@github.com': 
To https://github.com/iBeliever/weather-desktop.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/iBeliever/weather-desktop.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我不太确定如何解决这个问题。我之前处理过远程更改,并通过拉取和合并解决了它们,但我不确定在这种情况下该怎么做。我需要使用更正的名称更新我的 GitHub 存储库,我该怎么做?

4

2 回答 2

5

史蒂文的回答是正确的,但非常危险。所以当你使用强制推动时要小心。

首先,git push -f将强制将所有本地分支推送到远程存储库。

要只推送主分支,您必须指定它。

git push -f origin master

执行此操作时,您需要告诉所有其他有权访问此存储库的人在他们进行任何其他提交之前拉下您的更改。否则,分支将以您不想处理的疯狂方式发散。

于 2013-04-18T18:56:09.990 回答
1

可以强制 推送

git push -f

更多信息

      -f,--强制
          通常,该命令拒绝更新不是
          用于覆盖它的本地 ref 的祖先。此标志禁用
          支票。这可能会导致远程存储库丢失提交;
          小心使用它。
于 2013-04-18T18:52:24.380 回答