题
怎么这实际上来的呢?
我的工作在一个仓库,通过自己的时刻,这是我的工作流程:
- 改变的文件
- 提交
- 重复1-2,直到满足
- 推掌握
然后当我做一个 git status
它告诉我我的店是 通过提前提交X (推测是相同数量的承诺,我们作出)。这是因为当你把代码它实际上并没有更新你的本地缓存文件(。git文件夹)? git pull
似乎"修复"这个奇怪的消息,但我还是好奇为什么会这样也许我做错了吗?
包括什么分被印刷的消息
我当地的分支是未来的主人
你在哪里推/拉目前的分支
我推到审查和拉到哪个电脑我要工作对在那个时间点,我的地方复制始终得到全面更新,因为我的唯一工作。
它并不实际检查远程仓库
那是什么我想,我想,我将确保我的理解是正确的。
是你传递一些额外的论据吗?
不那个我可以看到,也许有一些有趣的配置上会在我的结束了吗?
$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
解决方案
如果你得到这个消息后做一个 git pull remote branch
, ,尝试下这个 git fetch
.(可选的,运行 git fetch -p
删除删除分支回购)
取似乎更新的当地代表的远程支,这并不一定发生的,当你做一个 git pull remote branch
.
其他提示
使用
git pull --rebase
所--变基选择意味着发生了错误,移动你的地方提交一边,同步与远程和随后尝试应用你的提交从新的国家。
使用这3个简单的命令
步骤1 : git checkout <branch_name>
步骤2 : git pull -s recursive -X theirs
步骤3 : git reset --hard origin/<branch_name>
更多详细信息: https://stackoverflow.com/a/39698570/2439715
享受。
我觉得你误读的消息—你支不超前的 master
, , 是 master
.这是前进的 origin/master
, ,这是一个 远程跟踪分支 记录状态的远程数据库从你最后一次 push
, pull
, 或 fetch
.它告诉你什么你没有,你得到了前进的远程和它的提醒你,以推动。
有人说你可能会误读了你的消息,你不是。这个问题实际上已做到与你的 <project>/.git/config
文件。它将是一个部的类似这样的:
[remote "origin"]
url = <url>
fetch = +refs/heads/*:refs/remotes/origin/*
如果删除取行自己的项目。git/config文件您将停止"你的支是未来的'原产地/master'通过 N
提交。"烦扰的发生。
我这样希望。:)
我有这个问题上我的阶段的服务器我只能拉。和难重帮我清理头一样遥远。
git reset --hard origin/master
所以现在我必须再次:
On branch master
Your branch is up-to-date with 'origin/master'.
在我的情况下,这是因为我掌握的使用
git checkout -B master
刚才拉的新的版本代替
git checkout master
第一个命令 重头的主人 我的新的提交
我用
git reset --hard origin/master
为了解决这个问题
我去过的每一个解决方案上的这一页,而幸运的是@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
最好的运气
我有个同样的问题,在Windows的机器。当我跑了一个 git pull origin master
命令,我将获得"前面的'原产地/master'X承诺"的警告。我发现,如果我不是跑了 git pull origin
并没有指定的分支,那么我将不再收到警告。
它只是提醒你之间的差异,当前的部门和分支,它是否目前的轨道。请提供更多信息,包括有什么分被印制在邮件和你在哪里推/拉目前的分支。
虽然这个问题是一位老...我是在一个类似的情况,我的答案在这里,帮我解决一个类似的问题,我有
第一次尝试 push -f
或力的选择
如果没有工作的这是可能的,(如在我的情况下)的远程存储库(或者更确切地说,提到的远程存储库,显示了在 git remote -v
)可能不会得到更新。
结果的上是你的推动同步的当地分与你的远程/支然而,缓存在你的地方仓库中仍然显示出以前提交(当地/...分支只提供单的提交被推)作为头。
确认上述的克隆的回购协议在不同的位置和试图比较本地分头和远程/科头。如果他们两个是一样的那么你可能面临的问题,我没有。
方案:
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
$ git remote add origin git://github.com/pjhyett/hw.git
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
origin git://github.com/pjhyett/hw.git (fetch)
origin git://github.com/pjhyett/hw.git (push)
$ git remote rm origin
$ git remote -v
github git@github.com:schacon/hw.git (fetch)
github git@github.com:schacon/hw.git (push)
现在做一个 push -f
如下
git push -f github master
###注意你的命令没有 origin
了!
做一个 git pull
现在
git pull github master
上 git status
收到
# On branch master
nothing to commit (working directory clean)
我希望这个有用的人数的意见是如此之高,以至于在寻找这个错误几乎总是列出了这个线上的顶部
还请参阅 gitref 对于细节
事实上,我有这种情况发生,当我在做一个开关/结与TortiseGIT.
我的问题是,我已建立的分行基于另一个地方分支。它创造了一个"合并"条 /.git/config
这看起来是这样的:
[branch "web"]
merge = refs/heads/develop
remote = gitserver
在那里,只要我切换到的"网络"的分支,它告诉我我是100+提交今后的发展。好吧,我是不再承诺向发展,所以这是真实的。我能简单地删除该项,这似乎是作为预期。它被正确地跟踪与远程参考,而不是的抱怨正在后面的发展分支。
作为Vikram说,这堆溢线是顶级的结果在谷歌搜索时,这个问题,所以我想分享我的情况和解决方案。
然后当我做个混状态它告诉我我的店之前通过X犯(据推测的数量相同 提交我已经做了).
我的经验是在团队环境中有许多分支机构。我们的工作在我们自己的功能分支(在当地的克隆的),它是一个为那些 git status
表明我11承诺。我的工作假设,似问题的作者,是+11是从 提交我自己.
原来,我得拔变化从常见的 develop
分进入我的功能分支多星期前--但忘了!当我重新审视我的地方特征分今天做了一个 git pull origin develop
这个数字上升至+41承诺。许多工作已经完成 develop
等等我的地方特征分支甚至进一步前进的功能分支 origin
库。
所以,如果你得到这个消息,认为任何翻/合并你可能已经完成从其他机构(自己或其他人)。消息只是你需要的信号 git push
那些 pull
ed变回来的 origin
回('跟踪分支')从你的地方仓库中得到的东西,同步。
该答复建议 git pull
或 git fetch
是正确的。
该消息时产生的 git status
看到差别 .git/FETCH_HEAD
和 .git/refs/remotes/<repository>/<branch>
(例如 .git/refs/remotes/origin/master
).
后一文件记录的头从最后的获取(对于储存库/分支)。做 git fetch
更新的文件分支的前头。
当然,如果没有什么可以获取(因为当地的仓库已经是最新的),然后 .git/FETCH_HEAD
不会改变。
我谨重申,同样如前所述通过@玛丽安Zburlia以上。它为我工作和会建议同其他人。
git pull origin develop
应该跟着 $ git pull --rebase
.
这将删除的意见来了 $ git status
在最近的拉。
git fetch
将解决这个给你
如果我的理解是正确的,你的地方(缓存) origin/master
是出的日期。这种命令将更新存储库的国家从服务器。
这个工作对我来说
git reset --hard origin/master
输出必须看起来像
On branch dev
HEAD is now at ae1xc41z Last commit message
如果你得到这个消息之后提交,以便取消追踪文件在分支,试图做一些改变的任何文件和执行提交。显然你不能让单的提交,这仅仅包括untracking以前的跟踪文件。最后,这个职位帮助我解决整个问题 https://help.github.com/articles/removing-files-from-a-repository-s-history/.我只是要删除的文件存储库的历史。