Is HEAD in git case insensitive on all platforms?

前端 未结 4 1442
予麋鹿
予麋鹿 2021-01-11 16:07

Using msysgit on Windows, I can do this:

git checkout head

or

git checkout HEAD

Either works. I don\'t ha

相关标签:
4条回答
  • 2021-01-11 16:24

    HEAD is case sensitive in Linux environment. As far as I know its case insensitive only in mysysgit.

    In Linux environment it gives : error: pathspec 'head' did not match any file(s) known to git.

    0 讨论(0)
  • 2021-01-11 16:28

    Answering to cover Mac OSX (Mavericks):

    $ git checkout HEAD
    Your branch is up-to-date with 'origin/master'.
    

    but:

    $ git checkout head
    Note: checking out 'head'.
    
    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.
    
    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:
    
      git checkout -b new_branch_name
    
    HEAD is now at f44b740... fix if endScreen(s) not present
    

    By the way, that hash is the head of the current branch (in my test, the same has contained in .git/refs/heads/master)

    Interesting behaviour.

    (git 1.8.5.2)

    0 讨论(0)
  • 2021-01-11 16:35

    The case-sensitivity of HEAD is depending on the case-sensitivity of file system of the OS.

    When you checkout HEAD, git actually looks for a file named "HEAD" under the folder .git. If you type HEAD in small letters, git looks for the file name with small letters. You can see the .git/HEAD file actually contains the hash code of the commit HEAD pointing to.

    Because of this, the typical case-sensitivities of HEAD are:

    • Case-sensitive on Linux
    • Case-insensitive on Windows, MacOS
    0 讨论(0)
  • 2021-01-11 16:40

    HEAD is case-sensitive on Linux.

    For example:

    $ git checkout head
    error: pathspec 'head' did not match any file(s) known to git.
    $ git checkout HEAD
    Your branch is up-to-date with 'origin/master'.
    

    Git version 1.9.1 on Ubuntu 14.04.

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