您的分支领先“origin/master”3次提交

of1yzvn4  于 2022-10-23  发布在  Git
关注(0)|答案(9)|浏览(454)

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

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

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

x33g5p2x

x33g5p2x1#

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

  • 在一个好的工作流程中,您的远程主机副本应该是好的,而您的本地主机副本只是远程主机的副本。使用此工作流,您将再也不会收到此邮件。
  • 如果您以另一种方式工作,并且应该推送本地更改,那么只要git push origin(假设源是您的远程)
  • 如果本地更改不正确,只需删除它们或将本地主机重置为远程**git reset --hard origin/main上的状态**
nx7onnlm

nx7onnlm2#

使用以下4个简单命令

步骤1git checkout <branch_name>

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

步骤2git pull -s recursive -X theirs

获取远程分支更改,并在发生冲突时替换为其更改。在这里,如果你执行git status,你会得到这样的结果你的分支比“origin/master”领先3次提交

步骤3git reset --hard origin/<branch_name>
步骤4git fetch

硬重置您的分支。
享受

xtupzzrd

xtupzzrd3#

没有什么要解决的。您只需进行了3次提交,还没有将它们移动到远程分支。根据您想做什么,有几个选项:

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

您正处于一种典型的情况(尽管在大多数工作流中,您通常不会在master上提交太多内容)。以下是我通常会做的:回顾我的更改。也许做一个简单的步骤,在上面涂上一些化妆品,去掉那些让人恶心的,重新排序,使它们更符合逻辑。现在用git push将它们移动到远程。如果因为我的本地分支不是最新的而被拒绝:git pull --rebase在最新更改的基础上重做我的工作,然后再次使用git push

t5fffqht

t5fffqht4#

我在Bitbucket上合并了一个pull请求后遇到了这个问题。
不得不做的事

git fetch

就这样。

avkwfej4

avkwfej45#

如果你的git说你提前提交,那么就先提交,
git推送源
确保您已将所有最新工作推至回购
然后
git reset--硬原点/主机
重置并匹配回购

efzxgjgh

efzxgjgh6#

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

git rebase -i origin/master

通过这种方式,我可以看到提交并决定删除它或选择。。。

gev0vcfq

gev0vcfq7#

git发出的这条消息表示您在本地存储库中进行了三次提交,尚未将它们发布到master存储库。为此运行的命令是git push {local branch name} {remote branch name}
命令git pull(和git pull --rebase)用于另一种情况,即远程存储库上存在本地存储库中没有的提交。--rebase选项意味着git将把本地提交移到一边,与远程存储库同步,然后尝试从新状态应用三次提交。如果存在冲突,它可能会失败,但会提示您解决冲突。如果您不知道如何使用git rebase --abort解决冲突,您也可以中止rebase,然后返回运行git pull --rebase之前的状态。

bwleehnv

bwleehnv8#

我在Bitbucket上合并了一个pull请求后,就发生了这种情况。
我只需要做:
git fetch
我的问题解决了。我希望这有帮助!!!

tkclm6bt

tkclm6bt9#

我遇到了这个问题,我使用了不带引号的“git reset--hard origin/master”将本地master重新设置为远程master分支。

相关问题