你的分支在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
我的问题解决了! 欢呼! 希望这可以帮助!