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

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

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


当前回答

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

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

其他回答

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

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

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

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

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

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

Git推源

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

然后,

Git重置-硬源/主

重置和匹配回购

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

我只需要做:

git fetch

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

使用这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取回

硬重置你的分支。

享受。