你的分支在3次提交之前是“原点/主”的

运行git status时,我得到以下内容

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

我已经读过一些其他职位的方式来解决这个是运行git pull --rebase但是什么是rebase,我会失去数据还是这种简单的方式来与主同步?

你得到这个消息是因为你在本地主服务器上做了修改,而你没有把它们推到远端。 你有几种方法来“解决”它,通常取决于你的工作stream程如何:

  • 在一个好的工作stream程中,你的远程副本应该是好的,而你的本地副本只是远程副本。 使用这个工作stream程,你永远不会再得到这个消息。
  • 如果你以另一种方式工作,你应该推动你的本地更改,那么只要git push origin假设origin是你的remote
  • 如果您的本地更改是不好的,那么删除它们或重置您的本地主机到远程git reset --hard origin/master

没有什么可以解决的。 你只做了3个提交,还没有把它们移到远程分支。 有几种select,取决于你想要做什么:

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

你处于一个经典的情况下(尽pipe通常你不会在大多数工作stream程中对主控进行大量的处理)。 这是我通常会做的:查看我的更改。 也许做一个git rebase --interactive做一些化妆品,放弃那些吮吸,重新sorting,使他们更合乎逻辑。 现在用git push把它们移动到远程。 如果这被拒绝,因为我的本地分支不是最新的: git pull --rebase重做我的工作在最近的变化的顶部,并再次git push

这个来自git消息意味着你已经在你的本地仓库中进行了三次提交,并没有将它们发布到master仓库。 为此运行的命令是git push {local branch name} {remote branch name}

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

使用这4个简单的命令

第1步git checkout <branch_name>

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

第2步git pull -s recursive -X theirs

进行远程分支更改,并在发生冲突时更换其更改。 在这里,如果你做git status你会得到像这样事情你的分支在3提交之前是“原点/主”。

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

第4步git fetch

硬重置您的分支。

请享用。

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

不得不做

 git fetch 

就是这样。

通常如果我必须检查哪些是与主人不同的提交:

 git rebase -i origin/master 

这样我可以看到提交,并决定放弃或select…

在我合并了Bitbucket上的一个请求之后,这个事情就发生了。

我只需要做

 git fetch 

我的问题解决了! 欢呼! 希望这可以帮助!