Are GIT refs always case insensitive?

后端 未结 2 599
面向向阳花
面向向阳花 2021-01-18 09:57

I was testing on my local machine (OS-X 10.10) which uses a case insensitive file system (HFS+ [CI]) - when I reset to the head:

$ git reset head --hard
$ g         


        
相关标签:
2条回答
  • 2021-01-18 10:15

    No, you would not get the same results on a case sensitive filesystem. If you ran:

    git reset branch --head
    

    on a case sensitive filesystem then that is not the same as running:

    git reset BRANCH --hard
    

    Since references are often stored on the filesystem (in the .git/refs/heads folder), the case sensitivity of the filesystem comes into play. On a case sensitive filesystem, .git/refs/heads/branch and .git/refs/heads/BRANCH are two different files.

    Note that even on a case insensitive filesystem, your references may end up "packed", in a file specifying on reference per line. In this case, your references are always case sensitive, regardless of your filesystem.

    0 讨论(0)
  • 2021-01-18 10:28

    Yes, they are case insensitive. No, a case sensitive file system will not matter. Because git refs are part of a SHA-1 hash, and those are hexadecimal digits (base-16, they just look like letters). At least for the commit-id. As pointed out by @EdwardThomson in the comments, a ref-name may (or may not) be case-sensitive (that depends on the underlying filesystem and whether or not the storage mechanism is loose or packed).

    0 讨论(0)
提交回复
热议问题