this post was submitted on 24 Jul 2024
16 points (94.4% liked)

Git

2935 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
 

I think it's generally agreed upon that large files that change often do not belong while small files that never change are fine. But there's still a lot of middle ground where the answer is not so clear to me.

So what's your stance on this? Where do you draw the line?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 4 months ago (1 children)

Never do this.

Git is all about tracking changes over time which is meaningless with binary files. They are bloat for your repo, slowing down operations. Depending on the repo, they are likely to change from CI with every commit. That last one means that every commit turns into 2 commits btw. They are can ruin diffs. I could go on for a long time here.

There are basically 0 upsides. Use an artifact repository instead!

[–] [email protected] 6 points 4 months ago

Git is all about tracking changes over time which is meaningless with binary files.

Utter codswallop. You can see the changes to a PNG over time. Lots of different UIs will even show you diffs for images.

Git can track changes to binary files perfectly well. It might not be great at dealing with conflicts in them but that's another matter.

The only issue is that binary files tend to be large, and often don't compress very well with Git's delta compression. It's large files that are the issue, not binary files. If you have a 20 kB binary file it's going to be absolutely fine in Git. Likewise a 10 GB CSV file is not going to be such a good idea.