从今天早上开始提交时,我的主指针一直在前进,但我的远程/原点/主指针没有。但是,当我使用命令行检查远程原点(ls-remote origin
)的位置时,我已经看到类似问题的建议,返回的SHA1不是远程/ origin / master的提交之一指针指示,但是主指示的那个。当我尝试git pull
,我看到推荐的其他内容时,我告诉我,我已经知道了。
以下是gitk目前正在展示的内容(无法发布图片)
我是唯一一个从事这段代码的人,对git和一般的版本控制都是新手。
更新
我尝试过的其他事情:
尝试git push
,它告诉我所有内容都是最新的
尝试git fetch
,这不会改变我在gitk中看到的内容(也尝试了git fetch origin
)
答案 0 :(得分:3)
push
的反面不是{{1}},而是pull
。特别是,fetch
基本上是git pull
加上额外的一步git fetch
或git merge
。如果你有一个旧版本的git,那就更重要了,因为:
如果您的git超过1.8.5(我的猜测是你的),使用git rebase
运行git pull
,git fetch
步骤< em> not 更新远程跟踪分支fetch
。但是,如果您手动运行origin/master
,它将更新远程跟踪分支(使用git fetch origin
看到的SHA-1),这将使您的{{1}显示正确。
这似乎特别奇怪,因为git ls-remote
应更新您的远程跟踪分支,以便gitk
告诉您所有内容都是最新的git push
1}}现在应该看到更新,就好像您已经运行git push origin master
一样。 (即使使用较旧的git变种也是如此.git 1.8.5的变化是使远程跟踪分支的fetch-by-pull更新,以消除这种奇怪的现象。)
(如果你有更新版本的git,gitk
运行的git fetch origin
应该更新远程跟踪分支,并且这个问题不应该首先出现。)
编辑:如下面的评论所示,问题结果是存储库配置文件中缺少fetch
规范。 如何创建仍然是一个谜:通常,无论是初始克隆还是添加名为pull
的远程,都会添加正确的fetch
行。但是,如果该行丢失,则必须将其放回以更新远程跟踪分支。
答案 1 :(得分:2)
我的主指针一直在前进但我的远程/原点/主指针没有。
这似乎与提交的本地性质一致:它会向您的本地分支(master
)添加新提交,但不会更改 remote tracking branch 的任何内容(origin/master
)
您需要推送(git push
)到您的upstream repo,以便更改origin / master,并让git ls-remote返回更新的提交SHA1。