this post was submitted on 29 Jun 2023
309 points (98.7% liked)

Git

2938 readers
1 users here now

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Resources

Rules

  1. Follow programming.dev rules
  2. Be excellent to each other, no hostility towards users for any reason
  3. No spam of tools/companies/advertisements. It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.

Git Logo by Jason Long is licensed under the Creative Commons Attribution 3.0 Unported License.

founded 2 years ago
MODERATORS
309
Your Git horror stories (programming.dev)
submitted 2 years ago* (last edited 2 years ago) by canpolat to c/git
 

We all have been there... For the beginner it's easy to mess things up. What are your horror stories with Git?

Link to xkcd

you are viewing a single comment's thread
view the rest of the comments
[–] JackbyDev 5 points 1 year ago (1 children)

Alright, currently dealing with a CRLF issue from hell. The .gitattributes file says bat files should have CRLF endings but some template we use with backstage and cookiecutter makes the gradlew.bat file end up with CRLF line endings in the repository. Quick aside, whenever git is handling line ending conversions it sotres LF line endings inside the blobs then makes them CRLF on checkout. In the template repository everything is correct. But for some reason when you run the template the batch file has CRLF line endings in the repository.

Why does this matter? Because you'll have a totally fresh untouched repo and git will report a change in a file. You'llook at the doff and not see what is going on. Because you made no change. But git is trying to fix the problem of CRLF being in the repo when the attributes file says it needs to control the line endings.

You have to use the git cat-file command to see what is in the blob.

Yesterday I thought I narrowed it down to the Node project isomorphic-git but it actually seems to handle it correctly but I'm still suspicious.

Any advice is appreciated lol

[–] whats_all_this_then 3 points 1 year ago* (last edited 1 year ago) (1 children)

I've had a similar issue before and the problem was that I had made the repo on linux, worked on it a bunch, copied it over to a different PC running windows, then copied it back. Found this on stackoverflow and it fixed it for me, but I've only tested it on linux (probably won't work on windows because grep). Hopefully it helps:

git diff -p -R --no-ext-diff --no-color | grep -E \"^(diff|(old|new) mode)\" --color=never | git apply

[–] JackbyDev 2 points 1 year ago

That's the weird thing, everyone here uses Mac and the server running the template is Linux so this isn't a case of a Windows user forgetting to set autocrlf and even then it is in the git attributes file.