为什么分支尖端在它的遥控器后面?

时间:2014-05-22 15:01:41

标签: git

尽管从远程主机拔出并被告知一切都是最新的,但我无法推送到远程主机,因为当前分支位于遥控器的尖端后面。什么?

$ git pull origin master
From https://github.com
 * branch            master     -> FETCH_HEAD
Already up-to-date.
$ git push origin master
To https://github.com
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com'
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.

2 个答案:

答案 0 :(得分:2)

你可能在另一个分支上。 git checkout master然后尝试。

答案 1 :(得分:0)

您可能在另一个分支上。您可能应该备份所做的更改。由于人们丢失了更改,因此他们需要始终保存到本地存储库,然后从本地存储库保存到远程存储库。合并是从目标分支内部完成的,这要求您在与master合并之前已将工作保存到源dev分支。

是git命令 [您需要更改的内容]

首先知道您在哪个分支上。

  1. git分支
    会告诉您您在哪个分支上。

然后,您需要将代码检入Dev分支,以免丢失它。

  1. git状态
    列出已更改的文件
  2. git添加[路径文件名]
    添加所有已更改的文件,只需从要添加的状态命令中复制路径和文件名即可。
  3. git commit -m [“评论”]
    将您的文件插入本地存储库,并附上注释,说明您所做的更改。插入的文件将是您添加的文件。
  4. git push origin [branch]
    将本地更改从本地存储库推送到开发分支的远程存储库。

现在,您的本地存储库和远程存储库都处于正常状态...。如果要更新Master分支,则可以安全地检出该分支并从master内部进行合并。如果您正在执行拉取请求,则可能要从master创建一个新分支并与之合并。然后在该新分支上执行拉取请求。

但是,如果您不使用 pull请求,而是想直接将master更新到您的dev分支。首先,您签出主人。

  1. git checkout master
    这样会删除您的本地代码,但是您已经将其保存在本地和远程服务器上了。

  2. git merge [dev分支]
    这会将您的开发代码合并到master中。如果存在任何冲突,请打开发生冲突的文件并搜索“ >>>”字符串以查看冲突的位置。通过更正代码来解决冲突。然后在本地检查更改,然后从本地存储库检查到远程存储库。

  3. git状态
    看看有什么变化

  4. git add master
    将修改后的文件添加到更新中
  5. git commit -m“ [评论已更改的内容]”
    更新本地存储库
  6. git push origin [branch]
    更新远程存储库。分支将在这里成为主节点,除非您要同步到新分支以对其进行拉取请求。