运行git status
Your branch is ahead of 'origin/master' by 3 commits.
我已经在其他帖子上看过修复此问题的方法是运行git pull --rebase
但是究竟什么是rebase,我会丢失数据还是这种与master同步的简单方法?
答案 0 :(得分:569)
您收到该消息是因为您在本地主服务器中进行了更改,而您没有将它们推送到远程服务器。您有几种方法可以“解决”它,通常取决于您的工作流程如何:
git push origin
假设原点是你的远程git reset --hard origin/master
答案 1 :(得分:32)
没有什么可以解决的。您只是进行了3次提交,但尚未将它们移动到远程分支。有几种选择,取决于您想要做什么:
git push
:将更改移至远程(如果遥控器上已有其他更改,则可能会被拒绝)git pull
:从遥控器获取更改(如果有)并将其合并到您的更改中git pull --rebase
:如上所述,但尝试在远程更改之上重做您的提交您处于经典情境中(尽管在大多数工作流程中通常您不会在主人身上投入很多)。以下是我通常会做的事情:查看我的更改。也许做git rebase --interactive
对它们做一些化妆品,丢掉那些吮吸它们,重新排序它们以使它们更合乎逻辑。现在使用git push
将它们移动到遥控器。如果由于我的本地分支不是最新的而被拒绝:git pull --rebase
要在最近的更改之后重做我的工作,再次git push
。
答案 2 :(得分:20)
第1步:git checkout <branch_name>
进入那个分支是显而易见的。
第2步:git pull -s recursive -X theirs
如果发生冲突,请进行远程分支更改并替换其更改。
如果你git status
,你会得到这样的结果你的分支在3次提交之前领先于'origin / master'。
第3步:git reset --hard origin/<branch_name>
第4步:git fetch
硬重置你的分支。
享受。
答案 3 :(得分:12)
我在Bitbucket上合并拉取请求后遇到了这个问题。
不得不做
.git
就是这样。
答案 4 :(得分:11)
来自git
的此消息表示您已在本地仓库中进行了三次提交,但尚未将其发布到master
存储库。为此运行的命令是git push {local branch name} {remote branch name}
。
命令git pull
(和git pull --rebase
)用于在您的本地仓库中没有提交远程仓库时的其他情况。 --rebase
选项意味着git
会将您的本地提交移到一边,与远程仓库同步,然后尝试从新状态应用您的三个提交。如果存在冲突,它可能会失败,但随后会提示您解决它们。如果您不知道如何使用rebase
解决冲突,也可以中止git rebase --abort
,并在运行git pull --rebase
之前返回状态。
答案 5 :(得分:6)
通常如果我必须检查哪些提交与我做的提交不同:
git rebase -i origin/master
通过这种方式,我可以看到提交并决定放弃或选择......
答案 6 :(得分:4)
如果你的git说你提前提交,那么就是 首先,
git push origin
确保您已将所有最新作品推送回repo
然后,
git reset --hard origin / master
重置并与repo匹配
答案 7 :(得分:2)
在我合并Bitbucket上的拉取请求后,这件事发生在我身上。
我必须这样做:
git fetch
我的问题解决了。我希望这有帮助!!!
答案 8 :(得分:1)
$ 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