Distributing git configuration with the code

后端 未结 4 650
迷失自我
迷失自我 2020-11-22 03:48

In trying to standardise the platform for the developers, one of my needs would be to commit the .git/config so that everybody have the same CRLF config without

4条回答
  •  [愿得一人]
    2020-11-22 04:35

    I have always found the autocrlf config property problematic. (as expressed in my answer Git 1.6.4 beta on Windows (msysgit) - Unix or DOS line termination)

    • it not only make some merges tricky
    • it can vary depending on the shell used within one environment
    • it also has issue with git status
    • and with svn import.

    Note: msysgit issue 538 for setting it to true (which is the default value set by the msysgit installer), but I am not convinced.

    I would prefer one of the three following solutions for:

    • configuring one end-of-line style
    • making that configuration propagate through the different Git repos

    First: git config --global core.autocrlf false
    Then:

    1. Using the new config setting core.eol (1.7.2+)

    Sets the line ending type to use in the working directory for files that have the text property set.
    Alternatives are 'lf', 'crlf' and 'native', which uses the platform's native line ending.
    The default value is native.

    2. a checkout/checking .gitattribute. See gitattributes man page: crlf or core.autocrlf is the way to record in a .gitattributes file what is was previously a local config attribute.

    You can add checkout/checkin attributes like:

    *.vcproj    text eol=crlf
    *.sh        text eol=lf
    

    3. a git attribute filter driver which can:

    • enforce any kind of formatting standard you may want to set
    • apply those standards to certain files/directories
    • be recorded as a config file (.gitattributes) able to be pushed anywhere.

提交回复
热议问题