运行git status时,我得到以下结果
git status
Your branch is ahead of 'origin/master' by 3 commits.
我在其他一些帖子上读到了修复这个问题的方法是运行git pull --rebase,但到底什么是rebase,我会丢失数据,还是这是与master同步的简单方法?
git pull --rebase
x33g5p2x1#
您收到该消息是因为您在本地主机中进行了更改,并且没有将它们推送到远程。您有几种“解决”问题的方法,通常取决于您的工作流程:
git push origin
git reset --hard origin/main
nx7onnlm2#
步骤1:git checkout <branch_name>
git checkout <branch_name>
这是显而易见的,进入那个分支。
步骤2:git pull -s recursive -X theirs
git pull -s recursive -X theirs
获取远程分支更改,并在发生冲突时替换为其更改。在这里,如果你执行git status,你会得到这样的结果你的分支比“origin/master”领先3次提交
步骤3:git reset --hard origin/<branch_name>步骤4:git fetch
git reset --hard origin/<branch_name>
git fetch
硬重置您的分支。享受
xtupzzrd3#
没有什么要解决的。您只需进行了3次提交,还没有将它们移动到远程分支。根据您想做什么,有几个选项:
git push
git pull
您正处于一种典型的情况(尽管在大多数工作流中,您通常不会在master上提交太多内容)。以下是我通常会做的:回顾我的更改。也许做一个简单的步骤,在上面涂上一些化妆品,去掉那些让人恶心的,重新排序,使它们更符合逻辑。现在用git push将它们移动到远程。如果因为我的本地分支不是最新的而被拒绝:git pull --rebase在最新更改的基础上重做我的工作,然后再次使用git push。
t5fffqht4#
我在Bitbucket上合并了一个pull请求后遇到了这个问题。不得不做的事
就这样。
avkwfej45#
如果你的git说你提前提交,那么就先提交,git推送源确保您已将所有最新工作推至回购然后git reset--硬原点/主机重置并匹配回购
efzxgjgh6#
通常,如果我必须检查哪些提交与master不同,我会这样做:
git rebase -i origin/master
通过这种方式,我可以看到提交并决定删除它或选择。。。
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之前的状态。
git
master
git push {local branch name} {remote branch name}
--rebase
git rebase --abort
rebase
bwleehnv8#
我在Bitbucket上合并了一个pull请求后,就发生了这种情况。我只需要做:git fetch我的问题解决了。我希望这有帮助!!!
tkclm6bt9#
我遇到了这个问题,我使用了不带引号的“git reset--hard origin/master”将本地master重新设置为远程master分支。
9条答案
按热度按时间x33g5p2x1#
您收到该消息是因为您在本地主机中进行了更改,并且没有将它们推送到远程。您有几种“解决”问题的方法,通常取决于您的工作流程:
git push origin
(假设源是您的远程)git reset --hard origin/main
上的状态**nx7onnlm2#
使用以下4个简单命令
步骤1:
git checkout <branch_name>
这是显而易见的,进入那个分支。
步骤2:
git pull -s recursive -X theirs
获取远程分支更改,并在发生冲突时替换为其更改。在这里,如果你执行
git status
,你会得到这样的结果你的分支比“origin/master”领先3次提交步骤3:
git reset --hard origin/<branch_name>
步骤4:
git fetch
硬重置您的分支。
享受
xtupzzrd3#
没有什么要解决的。您只需进行了3次提交,还没有将它们移动到远程分支。根据您想做什么,有几个选项:
git push
:将更改移动到远程(如果远程上已经有其他更改,则可能会被拒绝)git pull
:从远程获取更改(如果有)并将其合并到更改中git pull --rebase
:如上所述,但尝试在远程更改的基础上重新提交您正处于一种典型的情况(尽管在大多数工作流中,您通常不会在master上提交太多内容)。以下是我通常会做的:回顾我的更改。也许做一个简单的步骤,在上面涂上一些化妆品,去掉那些让人恶心的,重新排序,使它们更符合逻辑。现在用
git push
将它们移动到远程。如果因为我的本地分支不是最新的而被拒绝:git pull --rebase
在最新更改的基础上重做我的工作,然后再次使用git push
。t5fffqht4#
我在Bitbucket上合并了一个pull请求后遇到了这个问题。
不得不做的事
就这样。
avkwfej45#
如果你的git说你提前提交,那么就先提交,
git推送源
确保您已将所有最新工作推至回购
然后
git reset--硬原点/主机
重置并匹配回购
efzxgjgh6#
通常,如果我必须检查哪些提交与master不同,我会这样做:
通过这种方式,我可以看到提交并决定删除它或选择。。。
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
之前的状态。bwleehnv8#
我在Bitbucket上合并了一个pull请求后,就发生了这种情况。
我只需要做:
git fetch
我的问题解决了。我希望这有帮助!!!
tkclm6bt9#
我遇到了这个问题,我使用了不带引号的“git reset--hard origin/master”将本地master重新设置为远程master分支。