这到底是怎么发生的呢?

我在一个回购工作由自己的时刻,所以这是我的工作流程:

改变文件 提交 重复1-2次直到满意 推送至master

然后,当我执行git状态时,它告诉我我的分支领先X次提交(大概与我所做的提交数量相同)。是不是因为当您推送代码时,它实际上并没有更新本地缓存的文件(在.git文件夹中)?git拉似乎“修复”这个奇怪的消息,但我仍然好奇为什么会发生这种情况,也许我使用git错误?


包括在消息中打印的分支

我在当地的分公司走在主人前面

你在哪里推/拉当前的分支

我推送到GitHub,并拉到我碰巧在那个时间点上工作的任何一台计算机,我的本地副本总是完全最新的,因为我是唯一一个在它上工作的人。

它实际上并不检查远程回购

这就是我的想法,我想我要确保我对它的理解是正确的。

你是否给它传递了一些额外的参数?

不是我能看到的,也许我这边有什么奇怪的配置?

$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

当前回答

使用这3个简单的命令

步骤1:git checkout <branch_name>

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

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

详情:https://stackoverflow.com/a/39698570/2439715

享受。

其他回答

我浏览了本页上的每个解决方案,幸运的是@anatolii-pazhyn评论了,因为他的解决方案是有效的。不幸的是,我没有足够的声誉来支持他,但我建议先试试他的解决方案:

git reset --hard origin/master

这给了我:

HEAD is now at 900000b Comment from my last git commit here

我还建议:

git rev-list origin..HEAD
# to see if the local repository is ahead, push needed

git rev-list HEAD..origin
# to see if the local repository is behind, pull needed

你还可以使用:

git rev-list --count --left-right origin/master...HEAD
# if you have numbers for both, then the two repositories have diverged

祝你好运

这对我很有效

Git重置-硬源/主

输出必须是这样的

关于分支开发 HEAD现在在ae1xc41z最后提交消息

有人说你可能误解了你的信息,你没有。这个问题实际上与<project>/有关。git /配置文件。它将是一个类似于下面的部分:

[remote "origin"]
    url = <url>
    fetch = +refs/heads/*:refs/remotes/origin/*

如果你从你的项目的.git/配置文件中删除了获取行,你就会停止“你的分支比'origin/master'领先N个提交”的烦恼。

我希望如此。:)

然后,当我执行git状态时,它告诉我我的分支领先X次提交(大概与我所做的提交数量相同)。

我的经验是在有许多分支的团队环境中工作。我们在自己的特性分支中工作(在本地克隆中),git状态显示我已经提前11次提交了。我的工作假设,就像问题的作者,是+11来自我自己的提交。

结果发现,我在几个星期前就把变更从通用开发分支拉到了我的功能分支中——但我忘了!当我今天重新访问我的本地功能分支并做了一个git拉源开发时,数量跃升至+41提交。在开发过程中已经做了很多工作,所以我的本地特性分支在原始存储库上甚至领先于特性分支。

因此,如果您收到这条消息,请回想一下您可能从您可以访问的其他分支(您自己的或其他分支)执行的任何拉/合并。该消息只是表明你需要git将这些拉回的更改从本地回购推回原始回购(“跟踪分支”),以使事情同步。

它只是提醒你当前分支和运行当前轨迹的分支之间的区别。请提供更多信息,包括什么分支打印在消息中,你在哪里推/拉当前分支。