git pull aborted with error filename too long

Git

Git Problem Overview


I'm using Windows as my OS, and working on a project with a friend who's using a Mac. He checked in code to our Github.

I was trying to git pull everything he did and it aborted with "filename too long" errors of 3rd party code.

What can I do?

Git Solutions


Solution 1 - Git

The msysgit FAQ on Git cannot create a filedirectory with a long path doesn't seem up to date, as it still links to old msysgit ticket #110. However, according to later ticket #122 the problem has been fixed in msysgit 1.9, thus:

  1. Update to msysgit 1.9 (or later)
  2. Launch Git Bash
  3. Go to your Git repository which 'suffers' of long paths issue
  4. Enable long paths support with git config core.longpaths true

So far, it's worked for me very well.

Be aware of important notice in comment on the ticket #122

> don't come back here and complain that it breaks Windows Explorer, > cmd.exe, bash or whatever tools you're using.

Solution 2 - Git

Solution1 - set global config, by running this command:

git config --system core.longpaths true


Solution2 - or you can edit directly your specific git config file like below:

YourRepoFolder -> .git -> config:

[core]
	repositoryformatversion = 0
	filemode = false
	...
	longpaths = true        <-- (add this line under core section)


Solution3 - when cloning a new repository: here.

Solution 3 - Git

A few years late, but I'd like to add that if you need to do this in one fell swoop (like I did) you can set the config settings during the clone command. Try this:

git clone -c core.longpaths=true <your.url.here>

Solution 4 - Git

Open your.gitconfig file to add the longpaths property. So it will look like the following:

[core]
symlinks = false
autocrlf = true
longpaths = true

Solution 5 - Git

As someone that has ran into this problem constantly with java repositories on Windows, the best solution is to install Cygwin (https://www.cygwin.com/) and use its git installation under all > devel > git.

The reason this is the best solution I have come across is since Cygwin manages the long path names so other provided commands benefit. Ex: find, cp and rm. Trust me, the real problem begins when you have to delete path names that are too long in Windows.

Solution 6 - Git

Try to keep your files closer to the file system root. More details : for technical reasons, Git for Windows cannot create files or directories when the absolute path is longer than 260 characters.

Solution 7 - Git

On windows run "cmd " as administrator and execute command.

"C:\Program Files\Git\mingw64\etc>"
"git config --system core.longpaths true"

or you have to chmod for the folder whereever git is installed.

or manullay update your file manually by going to path "Git\mingw64\etc"

[http]
	sslBackend = schannel
[diff "astextplain"]
	textconv = astextplain
[filter "lfs"]
	clean = git-lfs clean -- %f
	smudge = git-lfs smudge -- %f
	process = git-lfs filter-process
	required = true
[credential]
	helper = manager
**[core]
	longpaths = true**

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDave MartinView Question on Stackoverflow
Solution 1 - GitmloskotView Answer on Stackoverflow
Solution 2 - GitDaniel HáriView Answer on Stackoverflow
Solution 3 - GitxandermonkeyView Answer on Stackoverflow
Solution 4 - GitPeteView Answer on Stackoverflow
Solution 5 - GitTristanView Answer on Stackoverflow
Solution 6 - GitMichael VerView Answer on Stackoverflow
Solution 7 - GitKumar AbhishekView Answer on Stackoverflow