How do I set all files in a subdirectory to use a specific eol using gitattributes?

I’ve been trying to set specific files to always use lf and not crlf regardless of autocrlf on the local system.

I tried creating a .gitattributes at the root of the project that only contained SquishIt.Tests/js/*.js eol=lf and I also tried SquishIt.Tests/js/ eol=lf. I pushed both of these attempts to my remote and then tried cloning it locally twice. The files under /js/ always showed up with CR+LF in both cases as autocrlf is on globally for me.

  • Git push confusion — what does “simple” mean?
  • Changing Git user on the fly
  • Unexpected merge conflict with git
  • Git alias to add prefix to name of new branch
  • How do I push changes to a git repo with conflicting history?
  • Is it possible to clone only certain commit from a git repo with depth 1?
  • I’m on a Windows machine, just in case it was unclear. Is what I’m attempting to achieve even possible?

  • Use some files as a git submodule
  • How to initialize git for a new eclipse (neon) java project
  • git rebase interactive: squash merge commits together
  • Git subtree - subtree up-to-date but can't push
  • combining unrelated git repositories retaining history/branches
  • git: Your branch and 'origin/master' have diverged - how to throw away local commits
  • 2 Solutions collect form web for “How do I set all files in a subdirectory to use a specific eol using gitattributes?”

    I wanted to have all text files forced to use LF except one sub directory (.idea) which is forced to use ‘CRLF’. This is how my .gitattributes looks:

    * text eol=lf
    /.idea/* text eol=crlf
    

    So I assume yours should look like:

    * text=auto
    /SquishIt.Tests/js/* text eol=lf
    

    I would set autocrlf to false and set core.whitespace to cr-at-eol. It’s better to let your editors deal with the difference in line endings. Let git store them as they are.

    Hope this helps.

    Git Baby is a git and github fan, let's start git clone.