民间,
这是git中的一些东西,对我来说没有意义,这就是发生的事情
git status
,我看到我在分支主人身上,没有提交,工作目录很干净。git pull origin master
我拉了一堆代码,没问题。git status
时,我看到一个新行你的分支在原点/主要提前1提交 我的本地仓库和远程仓库是完全同步的,你的分支在1个提交之前的原点/主数据之前是什么意思,这非常令人困惑。
答案 0 :(得分:9)
我确实经历过你所看到的。 我无法在git-scm.com上找到正确的解释,但我相信它是这样的:
git pull origin master
git status
你会看到你的分支领先于原点/主人甚至很难你在你的本地仓库中没有新的提交而且没什么可推的! (在此示例中,自第1步(克隆)后,您没有在本地提交任何新内容) ==>当我在掌握时,我通过做git pull origin
来解决这个问题。
git pull origin master
会将所有新提交从原始分支提取到本地分支。
git pull origin
也会重新设置对master的引用,等于在origin上引用master的提交!! (当没有发生这种情况时,git-bash会认为你提交了大量的提交!因为在提交树中,提交后有很多提交你的主引用!)
这对你有什么影响吗?它对我有用:))
另外,请随时通过确凿的证据/文件来支持我的努力:)
答案 1 :(得分:4)
您已在本地计算机上添加了一个尚未发送到远程服务器的提交。
如果您确信应该与远程存储库共享您的修改,则使用git push
命令将提交发送到远程:
git push orgin master:master
答案 2 :(得分:1)
您正在考虑的是,您与远程存储库没有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%同步。
答案 3 :(得分:0)
实际上,假设您的本地分支和远程分支同步。如果它说你的本地分支超过origin / master 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