Re: Git doesn't save capitalization change in file names.
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Jan 12, 2016, 09:58 UTC
- Message-ID
- <5694CE38.5020503@web.de>
- In-Reply-To
- <alpine.DEB.2.20.1601120900380.2964@virtualbox>
On 01/12/2016 09:02 AM, Johannes Schindelin wrote:
Show 28 quoted lines
> Hi, > > On Tue, 12 Jan 2016, Andrew Ardill wrote: > >> On 12 January 2016 at 13:06, Daniil S <ds98s3a@gmail.com> wrote: >>> So I've now encountered this with both GitHub and BitBucket, Windows >>> and Linux versions, so I'm fairly sure it's git's fault. > I highly doubt that the Linux variety of Git displays this problem, unless > it is run on a case-insensitive file system. > >>> Example: if file named "Pathfinding.java" was renamed to >>> "PathFinding.java" and that change is then committed, filename won't >>> change in repository. >> This actually comes down to the file system you use, as git itself does >> keep track of the capitalisation of file names; if the file system is >> case insensitive (Mac OSX being the typical example) then you can run >> into weird issues when files change case. >> >> For example, the following two search results: >> >> https://stackoverflow.com/questions/10523849/changing-capitalization-of-filenames-in-git >> >> https://ocroquette.wordpress.com/2014/07/08/git-capitalization-of-file-names-and-name-conflicts/ > I'd like to offer the most common work-around: > > git mv Pathfinding.java Pathfinding.java.rename > git mv Pathfinding.java.rename PathFinding.java >
Side note: That should no longer be needed: new versions of Git can handle the rename these days.
However, when A) does the rename, pushes it to a central repo, B) pulls the changes, the file will stay un-renamed on the local disk. You can delete all worktree files, and do a reset --hard, (at your own risk)