我确实看到了其他类似的问题,但我真的不明白为什么会这样。现在,我正在使用git reset --hard HEAD
然后手动添加我的更改。建议的解决方案似乎是git pull origin master
?但在那之后我仍然得到同样的信息。怎么了?我该如何合并?我对GIT还是比较新的
$ git pull origin master
Nodester!
Enter passphrase for key '/home/jiewmeng/.ssh/id_rsa':
From nodester.com:/node/git/jiewmeng/10267-f62c0a21d1a9d75ab7b6ace5858921d0
* branch master -> FETCH_HEAD
Merge made by the 'recursive' strategy.
$ git branch -a
* master
remotes/origin/master
答案 0 :(得分:8)
“你的分支领先......”=> 您需要推送到远程主人 运行“
git diff origin/master
”以查看本地存储库与远程主存储库之间的差异。
如果您通过一次提交超过远程仓库,那么远程仓库已经过时,而不是您。 拉动无济于事。
现在检查你是否真的在一个分支上(而不是在一个分离的头上)
这是你的情况(你确实在master
分支上)
答案 1 :(得分:4)
“分支由X提交领先”可能有两个原因: 1)你有真正的本地提交,你需要做'git push' 2)您的“起源”分支与远程端不同步。做:
git fetch
(根本原因似乎与'git pull origin master'而不是'git pull'有关)
答案 2 :(得分:0)
分支是“提前”由X提交意味着您的本地仓库有一些在远程仓库中不存在的新提交。先试试'git fetch'。
答案 3 :(得分:0)
我在我的环境中调查了同样的问题并找到了这些事实:
Origin / master是我执行克隆的提交时的标记(标签)。我没有在我身边创建任何提交,只是从原点开始没有变换。这导致我的回购同步,但没有移动或更新原点/主要位置。如果你执行push(origin / master标签移动到你的推送位置)然后做一些拉取以获取一些新的提交,就会出现相同的情况。
git log --graph --oneline -X master
其中X是数字> =提前“提交”的数量,您可以在git状态调用后看到。您可以在日志结果中看到定位原点/主标记的位置。这个内部git标记用于计算我们害怕的状态消息。
提交的哈希存储在refs / remotes / origin / master文件中。如果删除此文件,原始/主标记将消失,并且将不再显示有关提前提交的信息。
如果要将原点/主标记同步到当前主标记HEAD,只需键入
即可git update-ref refs/remotes/origin/master cac0cab538b970a37ea1e769cbbde608743bc96d
而不是我的哈希来自你的哈希:
git log -1
或者如果您愿意,可以使用文件内容复制/粘贴。结果应该是一样的。
这对我有所帮助,但我不知道还有哪些因素受到影响。据我所知,这条消息只有提供信息,而不是错误或警告。一切都按预期对我有效,没有任何限制。