当运行git状态时,我得到以下信息

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

我在其他一些帖子上读过,解决这个问题的方法是运行git拉—rebase,但rebase到底是什么,我会丢失数据吗,还是这是与主同步的简单方法?


没有什么可以解决的。您只是进行了3次提交,还没有将它们移动到远程分支。有几个选项,取决于你想做什么:

Git push:将更改移动到远程(如果远程上已经有其他更改,这可能会被拒绝) 什么都不做,继续编码,改天再同步 Git pull:从远程获取更改(如果有的话),并将它们合并到您的更改中 Git pull——rebase:如上所述,但尝试在远程更改之上重做你的提交

您处于典型的情况(尽管通常在大多数工作流中您不会在master上投入很多)。下面是我通常会做的事情:检查我的更改。也许可以做一个git rebase -interactive在它们上做一些修饰,删除那些糟糕的,重新排序使它们更有逻辑。现在用git push将它们移动到远程。如果这被拒绝,因为我的本地分支不是最新的:git拉-rebase重做我的工作在最近的变化和git推再次。


这条来自git的消息意味着您已经在本地repo中进行了三次提交,并且还没有将它们发布到主存储库。要运行的命令是git push{本地分支名称}{远程分支名称}。

The command git pull (and git pull --rebase) are for the other situation when there are commit on the remote repo that you don't have in your local repo. The --rebase option means that git will move your local commit aside, synchronise with the remote repo, and then try to apply your three commit from the new state. It may fail if there is conflict, but then you'll be prompted to resolve them. You can also abort the rebase if you don't know how to resolve the conflicts by using git rebase --abort and you'll get back to the state before running git pull --rebase.


您会收到这条消息,因为您在本地主服务器中进行了更改,而没有将它们推到远程。你有几种方法来“解决”它,这通常取决于你的工作流是什么样子的:

在一个好的工作流程中,master的远程副本应该是好的,而master的本地副本只是远程副本的副本。使用此工作流,您将永远不会再次收到此消息。 如果你以另一种方式工作,你的局部变化应该被推动 然后git push origin,假设origin是你的遥控器 如果您的本地更改是坏的,那么只需删除它们或重置您的 本地主到远程git重置的状态——硬源/主


使用这4个简单的命令

步骤1:git checkout <branch_name>

这是很明显的分支。

步骤2:git拉-s递归-X their

获取远程分支变更,并在发生冲突时替换它们的变更。 在这里,如果你使用git状态,你会得到这样的东西,你的分支领先'origin/master' 3次提交。

步骤3:git reset——hard origin/<branch_name> . zip

步骤4:git取回

硬重置你的分支。

享受。


我在Bitbucket上合并了一个pull请求后遇到了这个问题。

不得不做

git fetch

就是这样。


有一次我在Bitbucket上合并了一个pull请求,我就遇到了这种情况。

我只需要做:

git fetch

我的问题解决了。我希望这对你有帮助!!


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

git rebase -i origin/master

通过这种方式,我可以看到提交,并决定放弃它或选择…


如果你的git说你是提前提交,那么只是 首先,

Git推源

确保你已经把你所有的最新工作在回购

然后,

Git重置-硬源/主

重置和匹配回购


我有这个问题,我使用'git重置-硬起源/主',没有引号,将我的本地主基到远程主分支。


Git重置-硬源/主

使用这个命令