繁体   English   中英

您的分支领先于 'origin/master' 3 次提交

[英]Your branch is ahead of 'origin/master' by 3 commits

运行git status时我得到以下信息

Your branch is ahead of 'origin/master' by 3 commits.

我在其他一些帖子上读过解决这个问题的方法是运行git pull --rebase但究竟什么是 rebase,我会丢失数据还是这种与 master 同步的简单方法?

您收到该消息是因为您在本地 master 中进行了更改,并且没有将它们推送到远程。 您有多种“解决”方法,这通常取决于您的工作流程:

  • 在一个好的工作流程中,您的 master 的远程副本应该是好的,而 master 的本地副本只是远程副本的副本。 使用此工作流程,您将永远不会再收到此消息。
  • 如果您以另一种方式工作并且应该推送您的本地更改,那么git push origin假设 origin 是您的远程
  • 如果您的本地更改不好,那么只需删除它们或将您的本地 master 重置为远程git reset --hard origin/master

没有什么可以解决的。 您只是进行了 3 次提交,但尚未将它们移动到远程分支。 有多种选择,具体取决于您要执行的操作:

  • git push :将您的更改移动到远程(如果远程上已经有其他更改,这可能会被拒绝)
  • 什么都不做,继续编码,改天同步
  • git pull :从远程获取更改(如果有)并将它们合并到您的更改中
  • git pull --rebase :如上所述,但尝试在远程更改之上重做您的提交

您处于经典情况(尽管通常在大多数工作流程中您不会在 master 上提交很多内容)。 这是我通常会做的事情: 查看我的更改。 也许做一个git rebase --interactive对它们做一些装饰, git rebase --interactive那些git rebase --interactive的东西,重新排列它们以使它们更合乎逻辑。 现在使用git push将它们移动到远程。 如果这因为我的本地分支不是最新的而被拒绝: git pull --rebase在最近的更改之上重做我的工作,然后再次git push

使用这4个简单的命令

第 1 步git checkout <branch_name>

进入那个分支是显而易见的。

第 2 步git pull -s recursive -X theirs

如果发生冲突,进行远程分支更改并替换它们的更改。 在这里,如果你执行git status你会得到这样的东西,你的分支比'origin/master'领先3次提交。

第 3 步git reset --hard origin/<branch_name>

第 4 步git fetch

硬重置你的分支。

享受。

我在 Bitbucket 上合并了一个拉取请求后遇到了这个问题。

不得不做

git fetch

就是这样。

通常,如果我必须检查哪些提交与主提交不同,我会这样做:

git rebase -i origin/master

通过这种方式,我可以看到提交并决定放弃它还是选择......

来自git这条消息意味着您已经在本地存储库中进行了三个提交,并且尚未将它们发布到master存储库。 为此运行的命令是git push {local branch name} {remote branch name}

命令git pull (和git pull --rebase )适用于另一种情况,当您在本地存储库中没有远程存储库上的提交时。 --rebase选项意味着git会将您的本地提交移到一边,与远程--rebase同步,然后尝试从新状态应用您的三个提交。 如果存在冲突,它可能会失败,但随后会提示您解决它们。 如果您不知道如何使用git rebase --abort解决冲突,您也可以中止rebase ,并且您将返回到运行git pull --rebase之前的状态。

如果你的 git 说你提前提交了,那么首先,

git push 原点

确保你已经在 repo 中推送了你所有的最新工作

然后,

git reset --hard origin/master

重置并与 repo 匹配

我在 Bitbucket 上合并了一个拉取请求后,这发生在我身上。

我只需要这样做:

git fetch

我的问题解决了。 我希望这有帮助!!!

$ git fetch

  - remote: Enumerating objects: 3, done.
  - remote: Counting objects: 100% (3/3), done.
  - remote: Compressing objects: 100% (3/3), done.
  - remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0


$ git pull 

   - Already up to date!
   - Merge made by the 'recursive' strategy.

最后:

$ git push origin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM