在git中使用多个遥控器:“您的分支在X commits之前领先于“ origin / master”。

时间:2019-07-24 07:44:36

标签: git version-control git-remote

我们有一个包含两名开发人员的项目,其中有一个我们都在本地克隆的远程存储库,并在其中进行工作。

在进行更改后,我们转到另一个服务器(简称为S),在此发生实际的魔术。生产。在这里,我们必须从先前提到的回购中撤消更改。

由于某些原因,我们有不同的远程存储库(对我来说是替代品,对我朋友来说是原产地),因此当我要在生产中更新远程更改时,我使用git pull alt master时会指出:

"Your branch is ahead of "origin/master" by X commits. Use "git push" to publish your local commits."

这是什么意思?我的朋友需要使用“ git pull origin master”来更新它的实际建议吗?我没有原始/母版的书面许可,这是否意味着他在S中使用git pull origin master可以使通知消失吗?

我了解这是非常基础的内容,但是我们在这方面都是新手,因此非常感谢您的帮助! :)我也浏览了大多数类似的问题,但是找不到答案。

2 个答案:

答案 0 :(得分:0)

您说

  

当我要在生产中更新远程更改时,我使用git pull alt master

但这不是将您的新更改发送到生产服务器的适当操作。

您必须在此处push进行新的提交,这就是消息的提示。 “领先”意味着对另一端的承诺未知。

一天结束时,一旦您和您的朋友就发布状态达成共识,则其中一个应该将新的提交*推送到服务器S。

* (也许此时还考虑在此版本的提交上添加标签,这是强制实施的好习惯)

答案 1 :(得分:0)

让我逐步解释

  1. 您有 Remote 分支,可以在某些 Commit1 上说。
  2. 您克隆了存储库,并以 Alt Commit1 作为远程存储库调用了存储库。
  3. 现在您对Alt进行了更改,并将这些更改作为 X Commits 提交了,因此当前的Repo Alt位于 CommitX
  4. 由于没有其他人将更改推送到您的 Remote Repo,因此您的Remote处于commit1且从未更新

“您的分支在X提交之前位于“起源/主”之前。使用“ git push”发布您的本地提交。”

那么现在为什么收到此消息?

因为您的远程仓库位于 Commit1 且更新更改为零,而当前仓库位于 CommitX ,则当您尝试从远程仓库中拉出时,基本上是说您没有更改为pull,但当前的回购在X commit之前领先,因为您已进行了提交但尚未推送,这是建议尝试推送而不是pull,因为从远程进行Pull的更改没有

要避免出现此消息,只需使用Git Push Commond通过直接推送将您的更改推送到Remote repo,或者您可以跟踪项目中当前正在关注的GitFlow