Git 遥控器和遥控器的位置有区别吗?

Git 遥控器和遥控器的位置有区别吗?,git,git-remote,Git,Git Remote,也许我遗漏了一些关于遥控器的东西,但这让我很困惑: 我有一个带遥控器的git repo,遥控器实际上是我的U盘。 在我的远程设备上,有一个提交比我的本地repo多,所以 local-dir> git rev-list master -3 给我 941eba8b82233f5daceb41a57e10ff2d6d893fb9 8b386974a1976142912c41cc7e270e69ad5ecbd5 dd09efc70c029ea79fcfc455068df3788d4e193a

也许我遗漏了一些关于遥控器的东西,但这让我很困惑: 我有一个带遥控器的git repo,遥控器实际上是我的U盘。 在我的远程设备上,有一个提交比我的本地repo多,所以

 local-dir> git rev-list master -3
给我

941eba8b82233f5daceb41a57e10ff2d6d893fb9 
8b386974a1976142912c41cc7e270e69ad5ecbd5
dd09efc70c029ea79fcfc455068df3788d4e193a
28aaf69aafa9f21ad52c874d2e753bfd8e1b1f65                                   
941eba8b82233f5daceb41a57e10ff2d6d893fb9
8b386974a1976142912c41cc7e270e69ad5ecbd5
dd09efc70c029ea79fcfc455068df3788d4e193a

远程目录>git版本列表主目录-4

给我

941eba8b82233f5daceb41a57e10ff2d6d893fb9 
8b386974a1976142912c41cc7e270e69ad5ecbd5
dd09efc70c029ea79fcfc455068df3788d4e193a
28aaf69aafa9f21ad52c874d2e753bfd8e1b1f65                                   
941eba8b82233f5daceb41a57e10ff2d6d893fb9
8b386974a1976142912c41cc7e270e69ad5ecbd5
dd09efc70c029ea79fcfc455068df3788d4e193a
到目前为止还不错

我的遥控器被称为
stick
。当我这样做的时候

 local-dir> git rev-list stick/master -4
我明白了

进一步的调查显示“这样”我落后了10次。
git fetch stick master
不会改变这种情况

我原以为
remote dir>git rev list master-4
local dir>git rev list stick/master-4
至少在获取之后会产生相同的结果。好像我错过了什么。有人能解释一下吗?

命令:

git fetch stick master
在旧Git中的行为与在最新Git中的行为不同

它告诉git:

  • 查找名称
    记忆棒
    作为遥控器(查找USB记忆棒的路径)
  • 通常通过网络咨询远程存储库,但在这种情况下,只需查看其他存储库,看看它有哪些分支
  • 如果远程设备有一个名为
    master
    (它有)的分支,则收集所有提交和所需的其他对象
  • 最后(这是最新Git的不同之处),只在本地存储库中的名称
    FETCH\u HEAD
    下编写这些Git;不要更新
    refs/remotes/stick/master
    中的“远程分支”信息
  • 正是这最后一步造成了混乱

    如果您改为运行:

    git fetch stick
    
    这将遵循前两个步骤,但对于步骤3和步骤4,它将接管所有分支并更新所有远程分支信息。然后,
    git rev list stick/master-4
    将按照您期望的方式运行

    如果升级到git 1.8.4或更高版本,
    git fetch
    将在步骤4中更新远程分支信息,即使使用两个参数
    git fetch
    表单,它也将按照您预期的方式运行

    以下是1.8.4的发行说明对此的说明:

    • “git fetch origin master”与“git fetch origin”或“git fetch”不同 未更新“参考/远程/源/主”;这是一个很早的决定 保持远程跟踪分支更新的设计决策 这是可以预测的,但在实践中,人们发现这一点更多 无论何时我们有一个 我们在运行“git push”时一直在更新它们 已经打破了最初的“可预测性”

    git-remote-v
    ==本地目录的路径吗?@BleedingFingers:
    git-remote-v
    将为我提供
    remote-dir
    ,用于推送和取出
    。不是
    本地目录