运行时我得到以下信息git status
Your branch is ahead of 'origin/master' by 3 commits.
我在其他一些帖子上阅读了解决此问题的方法,git pull --rebase
但是 rebase 到底是什么,我会丢失数据还是这种与 master 同步的简单方法?
运行时我得到以下信息git status
Your branch is ahead of 'origin/master' by 3 commits.
我在其他一些帖子上阅读了解决此问题的方法,git pull --rebase
但是 rebase 到底是什么,我会丢失数据还是这种与 master 同步的简单方法?
您收到该消息是因为您在本地主机中进行了更改,并且没有将它们推送到远程。您有几种“解决”它的方法,它通常取决于您的工作流程如何:
git push origin
假设 origin 是您的远程git reset --hard origin/master
第 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
硬重置你的分支。
享受。
没有什么可以修复的。您只是做了 3 次提交,还没有将它们移动到远程分支。有几种选择,具体取决于您要执行的操作:
git push
:将您的更改移动到遥控器(如果遥控器上已经有其他更改,这可能会被拒绝)git pull
:从远程获取更改(如果有)并将它们合并到您的更改中git pull --rebase
:如上,但尝试在远程更改之上重做您的提交您处于典型情况(尽管通常在大多数工作流程中您不会在 master 上提交很多内容)。以下是我通常会做的:查看我的更改。也许git rebase --interactive
在它们身上做一些化妆品,丢弃那些糟糕的,重新排列它们以使它们更合乎逻辑。现在用 将它们移动到远程git push
。如果因为我的本地分支不是最新的而被拒绝:git pull --rebase
在最近的更改之上重做我的工作git push
。
在我在 Bitbucket 上合并拉取请求后遇到了这个问题。
不得不做
git fetch
就是这样。
通常,如果我必须检查哪些提交与主人不同,我会这样做:
git rebase -i origin/master
通过这种方式,我可以看到提交并决定放弃或选择......
如果你的 git 说你要提前提交,那么首先,
git推送起源
以确保您已将您所有的最新工作推送到 repo
然后,
git reset --hard origin/master
重置并与 repo 匹配
此消息来自git
意味着您已在本地存储库中提交了三个提交,并且尚未将它们发布到master
存储库。为此运行的命令是git push {local branch name} {remote branch name}
.
该命令git pull
(和git pull --rebase
)适用于另一种情况,即远程存储库中有您在本地存储库中没有的提交。该--rebase
选项意味着git
将您的本地提交移到一边,与远程仓库同步,然后尝试从新状态应用您的三个提交。如果存在冲突,它可能会失败,但系统会提示您解决它们。rebase
如果您不知道如何通过使用来解决冲突,您也可以中止git rebase --abort
,您将回到运行之前的状态git pull --rebase
。
在我在 Bitbucket 上合并拉取请求后,这发生在我身上一次。
我只需要这样做:
git fetch
我的问题解决了。我希望这有帮助!!!