在 git 中使用多个远程:"Your branch is ahead of "源/主" by X commits.."



我们有一个有两个开发人员的项目,我们有一个远程存储库,我们都在本地克隆了它,我们在那里推送我们的工作。

推送更改后,我们转到另一台服务器(我们称之为 S),在那里实际的魔术发生,即生产。在这里,我们当然必须从前面提到的存储库中提取更改。

出于某种原因,我们有不同的远程存储库(对我来说是alt,我的朋友是origin),所以当我希望我的远程更改在生产中更新时,我使用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会使通知消失?

我知道这是非常基本的东西,但我们都是这方面的新手,所以非常感谢任何帮助! :)我也浏览了大多数类似的问题,但找不到答案。

你说

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

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

您必须在那里push新提交,这就是消息所暗示的。"领先"意味着向另一端做出未知的承诺。

归根结底,一旦你和你的朋友就发布状态达成一致,你们中的一个人应该将新的提交*推送到你的服务器S。

*(也许此时还可以考虑在此版本的提交上放置一个标签,这是一个很好的强制做法)

让我分步解释

一下
  1. 你有远程分支,比如说在某个提交1
  2. 您克隆了存储库,并将存储库调用为Alt,在Commit1中调用为远程存储库。
  3. 现在,您对 Alt 进行了更改,并将这些更改提交为X 提交,因此当前的存储库 Alt 位于CommitX上。
  4. 由于没有其他人将更改推送到您的远程存储库,因此您的遥控器处于 commit1 并且从未更新过

"您的分支在 X 提交的"源/主"之前。使用"git push"发布你的本地提交。

那么现在你为什么会收到这条消息?

因为您的远程存储库位于 Commit1 并且更新的更改为零,并且当您尝试从远程拉取时,当前存储库位于CommitX基本上是说您没有要拉取的更改,但当前存储库领先于 X 提交,因为您进行了这些并且尚未推送,建议尝试推送而不是拉取,因为从远程拉取没有更改

为避免此消息,只需使用 Git Push Commond 直接推送将您的更改推送到远程存储库,或者您可以遵循您当前在项目中关注的任何 GitFlow

相关内容

最新更新