Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我的本地回购协议落后于远程回购协议时,git有时不显示_Git_Github - Fatal编程技术网

当我的本地回购协议落后于远程回购协议时,git有时不显示

当我的本地回购协议落后于远程回购协议时,git有时不显示,git,github,Git,Github,对于大多数(所有?)我使用git的生活,我可以做git status,它会告诉我本地存储库中是否有要提交的内容,以及它是否与origin是最新的 然而,我最近在github上创建了一个存储库供个人使用,我将它克隆到了我的本地机器上,但由于某种原因,它不起作用 在该回购中,如果我发布git status,我将得到以下输出 $ git status # On branch master nothing to commit, working directory clean 尽管我知道原点有变化。我必

对于大多数(所有?)我使用
git
的生活,我可以做
git status
,它会告诉我本地存储库中是否有要提交的内容,以及它是否与origin是最新的

然而,我最近在github上创建了一个存储库供个人使用,我将它克隆到了我的本地机器上,但由于某种原因,它不起作用

在该回购中,如果我发布
git status
,我将得到以下输出

$ git status
# On branch master
nothing to commit, working directory clean
尽管我知道原点有变化。我必须发出
git远程更新
,然后发出
git状态
,以表明我的分支位于源代码之后

问题是我的其他存储库(甚至使用同一台计算机等)不会发生这种情况,这让我认为这是一种本地配置。与将
git状态
以某种方式在本地将
git状态
别名为
git远程更新和&git状态
具有相同效果的东西

那么,有人能解释一下发生了什么,以及我如何“修复”这一回购协议,使其与其他回购协议具有相同的行为吗

相关:

引用:

Git不会联系遥控器,除非/直到您明确要求它,使用
Git ls remote
(一种只读操作,不更新副本中的任何内容)、
Git fetch
(更新他们的资料副本而不合并)或
Git pull
(更新您的副本,然后运行git merge将其更改添加到当前分支,之后您就不再落后了)

要查找您的分支位于远程服务器的后面还是前面,您只需随时请求
git fetch
,将本地存储库与远程服务器同步即可

git status
不应该检查遥控器,这是它应该做的:

显示索引文件与当前头提交之间存在差异的路径、工作树与索引文件之间存在差异的路径以及工作树中未被Git跟踪的路径


如果您的本地分支机构被设置为跟踪远程分支机构,则会收到
前方…后方…
消息

要检查本地
主机
分支是否跟踪任何分支,您可以

  • 在编辑器中打开
    .git/config
    文件,查看是否有
    [branch“master”]
    部分
  • 在终端中运行
    git config--get branch.master.merge
    ,查看它是否输出任何内容
要将本地分支设置为跟踪远程分支,只需运行:

git branch -u origin/master
要查看您当前知道的远程分支,请运行:

git branch -r

Github将其回购上的默认分支的名称从
master
更改为
main


根据您将本地回购与github的remote链接的方式,您可能只拥有一个本地
master
分支,但在远程端没有名为
master
的分支。

我了解了您的问题,并通过以下方式解决了问题:

git push origin <branch> -u
git推送原点-u
它同时推送远程服务器的提交和设置跟踪

如果您落后/领先或最新,
git状态现在也会显示。

请参阅并注意,
git远程更新
git fetch--all
的意思(或多或少)相同,即对所有远程设备运行
git fetch
。一个简单的
git fetch
将从当前分支的(单个)正确的远程设备获取数据,因此有时会更快,不过如果您像大多数人一样只有一个远程设备,那么它会做同样的事情。关于为什么不必对其他存储库执行此操作,我唯一的猜测是,它们已经同步(更早获取)。