I have a repo I added a gitattributes
to it and was working on it fine. I sync it via dropbox to another machine. When I opened it to the other machine a bunch of files suddenly appeared on the unstaged area as total diffs (all the file a huge diff which means line endings diff) - my crlf endings are basically .* text=auto
and I am working on windows. I tried to stash the changes, reset the branch etc. At long last I decided to commit the files and then made some other commits I wanted to reorder (and squash) before the line endings commit. When I try rebasing I get a :
error: Your local changes to the following files would be overwritten by merge
# those same files
Please, commit your changes or stash them before you can merge.
Aborting
Could not apply 89b25b81fff1a1e7893319e123aaaca9c4162a95... <commit message>
Of course stash does not work
Is it a bug ?
Related:
EDIT Nothing to do with machines - on the same machine some (...) operations just make those files (they are on the .gitattributes
as text) appear in the "changed" section. The only workaround that seems to exist is:
git rm --cached -r .
git reset --hard
USE CAREFULLY
EDIT: hack above moved to alias status:
[alias]
crlf = !git rm -r . --cached -q && git reset --hard
UPDATE 2015.09.30: I have a git repo in an NTFS partition I use from windows 7 and arch linux in a dual boot environment. When I shut windows down and I boot into arch two files (html) show as total diffs (line ending diffs). The above workaround does not work - unless you apply it several times refreshing the gui in between...
My .gitattributes
:
* text=auto
*.py text diff=python
*.html text
.project text
*.pkl -text
# M$ files
*.bat text eol=crlf
# UNIX files
**/generate_second_post text eol=lf
# git files - have them with LF, as I edit them via the shell (echo etc)
*.gitignore text eol=lf
*.gitattributes text eol=lf
NB: linux will let me commit, switch branches etc but won't let me rebase - plus those diffs always appear in gitk/git gui.
2018/12/14 moved to mac and my workaround does not work anymore. I posted a message to the git mailing list: https://marc.info/?l=git&m=154482149623324&w=2
Let's hope this will get some attention
$ git --version
git version 2.19.2
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…