Should git change the ending of line? (control+M or ^M at the end of the first line)

git, github, github-api

Solution

This GitHub help page deals with this very specific topic and drives one through the steps to correctly configure your Git configuration.

Basically, if you're working on Mac/Linux, use

$ git config --global core.autocrlf input

`

If you're rather a Windows guy, use

$ git config --global core.autocrlf true

`

Note: This will convert your line endings on the fly, while performing a checkout or a commit and ensure that your text files will have LF line endings in your repository while having native line endings in your working directory.

Note 2: This will not rewrite the history of your repository. Existing commits in the repo will keep their potentially mixed lines endings.

Note 3: Ensure that every committer executes this configuration step before their next commit.

An alternative approach, which doesn't involve compelling everyone to change their config, exists. It requires adding a specific file name .gitattributes to your repository. More information about his topic in the git official gitattributes documentation.

Note 4: Tim Clem, a githubber, published a very detailed blog post (Mind the End of Your Line) about line endings, related configuration entries and gitattributes benefits. It's an absolute must read if you're willing to get a good grasp of the concepts, the "why" and the internal machinery.

Problem

I use git to `pull` my code from a windows machine. When the other developers `pull` the files from the server on their liunx machine they have the `^M` at the end of the first line. How can make git to take care of this for me? I mean, `git` should change the ending of line (delete control+M or ^M at the end of the first line) when I push (from my window machine) the code on the server.

Original source

Related problems