你的分支在'origin/master'通过3次提交

我在运行git status时得到以下结果

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

我在其他一些帖子上读到过修复这个问题的方法是运行git pull --rebase,但到底是什么是rebase,我会丢失数据吗,或者这是与主同步的简单方法?

618033 次浏览

没有什么可以解决的。您只是进行了3次提交,还没有将它们移动到远程分支。有几个选项,取决于你想做什么:

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

您处于典型的情况(尽管通常在大多数工作流中您不会在master上投入很多)。下面是我通常会做的事情:检查我的更改。也许可以做一个git rebase --interactive来修饰它们,去掉那些糟糕的,重新排序让它们更有逻辑。现在用git push将它们移动到遥控器上。如果这被拒绝,因为我的本地分支不是最新的:git pull --rebase重做我的工作在最近的变化和git push再次。

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

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

您会收到这条消息,因为您在本地主服务器中进行了更改,而没有将它们推到远程。你有几种方法来“解决”;它通常取决于你的工作流是怎样的:

  • 在一个好的工作流程中,master的远程副本应该是好的,而master的本地副本只是远程副本的副本。使用此工作流,您将永远不会再次收到此消息。
  • 如果你以另一种方式工作,你的局部变化应该被推动 然后只是git push origin假设原点是你的遥控器
  • 如果您的本地更改是坏的,那么只需删除它们或重置您的 git reset --hard origin/main

使用这4个简单的命令

# eyz1: # eyz0

这是很明显的分支。

# eyz1: # eyz0

获取远程分支变更,并在发生冲突时替换它们的变更。 在这里,如果您执行git status,您将得到类似于你的分支比'origin/master'领先3次提交。

的内容

# eyz1: # eyz0

# eyz1: # eyz0

硬重置你的分支。

享受。

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

不得不做

git fetch

就是这样。

有一次我在Bitbucket上合并了一个pull请求,我就遇到了这种情况。

我只需要做:

# EYZ0

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

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

git rebase -i origin/master

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

如果你的git说你提前提交,那么只是 首先,< / p >

Git推源

确保你已经把你所有的最新工作在回购

然后,

Git重置-硬源/主

重置和匹配回购

我有这个问题,我使用'git重置-硬起源/主',没有引号,将我的本地主基到远程主分支。