这东西在git的,只是没有道理给我,这里是发生了什么
- 我做了
git status
,我看到我在分支大师,没有提交和工作目录是干净的。 - 我然后做
git pull origin master
我拉了一堆代码,没有问题。 - 现在,当我做
git status
我看到一个新的行你的分支是领先对手1产地/主的承诺
我的本地回购和远程回购是完全同步的,你的分支是超前什么呢原产地/主人1承诺的意思是,这是非常非常混乱的。任何输入/反馈都非常感谢。谢谢
这东西在git的,只是没有道理给我,这里是发生了什么
git status
,我看到我在分支大师,没有提交和工作目录是干净的。git pull origin master
我拉了一堆代码,没有问题。git status
我看到一个新的行你的分支是领先对手1产地/主的承诺我的本地回购和远程回购是完全同步的,你的分支是超前什么呢原产地/主人1承诺的意思是,这是非常非常混乱的。任何输入/反馈都非常感谢。谢谢
我所经历的,正是你看到的。 我找不到git-scm.com适当的解释,但我相信它是这样的:
git pull origin master
git status
和你会看到你的分支在原产地/主人面前甚至很难在你的本地回购中没有新的提交,也没有推动! (在这个例子中,自从步骤1(克隆)以来本地没有提交任何新东西)==>我在做主设备时通过执行git pull origin
来解决此问题。
A git pull origin master
将从原始分支上的所有新提交拉到您的本地分支。
A git pull origin
也将重新设置您对master的引用,等于master在引用时的引用! (当这种情况没有发生的时候,git-bash会认为你提前做了很多提交!因为在commit-tree里有很多提交之后你提交的主引用是提交的!)
这对你有任何意义吗?它确实给我:)
也请随时支持我toughts有点硬证据/文档:)
,请同时阅读blunderboy下面的评论。有用户1781472说,解决了他的问题+一些评论为什么它解决了他的问题。 – deblendewim 2013-03-22 15:37:11
您已在本地计算机上添加了一个提交,该提交尚未发送到远程服务器。
如果您确信您的修改应与远程存储库共享,发送提交到远程与git push
命令来完成:
git push orgin master:master
不,这就是整个问题,我没有任何东西在我的本地机器上没有提交。 – user1781472 2013-03-22 13:33:45
** git push origin master **和** git push origin master的区别:origin/master ** – user1781472 2013-03-22 13:51:28
First off:我的错误,命令应该读为'git push origin master:master' - 在帖子。 – LeGEC 2013-03-22 14:40:56
其实,这是你的假设,你的本地分支和远程分支同步。如果它表示你的本地分支在1次提交之前就是源于/主人,那肯定是。我们都信任GIT。
用这个来测试。
git checkout master // You move to master branch
cat .git/HEAD //shows the commit on which HEAD is pointing to
git checkout origin/master //you switch to origin master branch
cat .git/HEAD
如果您发现本地主服务器和远程主分支中的HEAD指向相同的提交,则两者都同步。
如果您当地的分行是提前1承诺,只要它推(如果你想)到远程分支作为
git push origin master
感谢您的回答,所以我在阅读本文之前只检查了本地(git log)和远程文件,它们都具有相同的近期提交。然后我做了一个** git fetch **,现在这个消息不见了,这说明我的分支在1提交之前。看起来像我得到的任何东西拉Git认为这是我的提交不推动和Git获取解决,不知道这里发生了什么 – user1781472 2013-03-22 14:24:53
1.你是否推动你的承诺起源。如果你还没有推它,那么你的提交无法完成。 2。你是否用硬选项重置HEAD?因为这也会从您的分支中删除提交。 – sachinjain024 2013-03-22 14:42:43
@ user1781472:在git-scm网站上,我发现了以下内容:更新远程跟踪分支: $ git fetch origin 上述命令从远程refs/heads /命名空间复制所有分支,并将它们存储到本地ref/remotes/origin /命名空间,除非分支。
你是不是100%与远程仓库同步为你想。你有来自远程仓库的一切,是的。但是您的本地主人通过一次提交就可以领先于原产地/主人。
运行它,并告诉我们结果:
git log --all --graph --pretty=format:'%h %d %s'
我希望看到这样的:
* (master) Commit D
* (origin/master) Commit C
* Commit B
* Commit A
如果我正确地读你的文章,你是一个犯提前,因为你有D,而远程分支在C上。您必须git push
将提交D推送到远程存储库。那么你将100%同步。
您为什么认为您的存储库与远程同步? – 2013-03-22 13:01:10
你不是在默认情况下重新绑定你吗?你可以尝试提取和合并单独而不是拉? – 2013-03-22 13:01:56
你可以使用“gitk”。查看哪些提交具有附加的“主”和“源/主”标签。 – 2013-03-22 13:30:40