这到底是怎么发生的呢?

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

改变文件 提交 重复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)

当前回答

只是说说我的遭遇。

我提交了一堆文件,意识到有一些文件我不想提交,所以我使用VS代码撤销上次提交,删除文件并添加到gitignore,然后强迫我再次提交。

这显然导致git认为我的提交仍然必须进行远程,因为本地文件以某种方式提交了。

通过撤销上次提交和取消当前gitignore中的文件来解决

其他回答

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

我在一台Windows电脑上遇到了同样的问题。当我运行一个git拉origin master命令时,我会得到“在'origin/master'前面X次提交”警告。我发现,如果我不是运行git拉原点,没有指定分支,那么我将不再收到警告。

我认为你误解了信息——你的分支不是在master前面,它是master。它位于origin/master之前,后者是一个远程跟踪分支,用于记录您上一次推、拉或取时远程存储库的状态。它会告诉你你做了什么;你走到了遥控器前面,它在提醒你按。

我在我的舞台服务器上有这个问题,我只做拉。 和硬复位帮助我清洁HEAD一样的遥控器。

git reset --hard origin/master

现在我又有了:

On branch master
Your branch is up-to-date with 'origin/master'.

Use

git pull --rebase

——rebase选项意味着git会将你的本地提交移到一边,与远程同步,然后尝试从新的状态应用你的提交。