this post was submitted on 20 Sep 2023
41 points (91.8% liked)

Programming

17024 readers
253 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
all 6 comments
sorted by: hot top controversial new old
[–] [email protected] 22 points 1 year ago* (last edited 1 year ago) (1 children)

In the object store. Object store is then packed into packs.

https://git-scm.com/book/en/v2/Git-Internals-Git-Objects

I'd link a good github intro article too but I don't have it at hand.

/edit: IIRC not the one I thought of but

[–] [email protected] 6 points 1 year ago (3 children)

The post you have commented on is a link to a blog post that answers the question.

[–] [email protected] 3 points 1 year ago

Oops, I indeed hadn't noticed.

[–] [email protected] 1 points 1 year ago

This is why I really dislike rhetorical questions as titles haha

[–] [email protected] 8 points 1 year ago

There are multiple copies of your files; the obvious one is your 'working copy', which is just the files on your machine that you work on. The second copy is in your local object store (in the .git directory). Git stores the committed data and it's metadata there. Then there's the remote copy on your git server if you push your commits to one.

Git uses the difference between the data in your 'working copy' and your object store to work out what you've changed and so needs commiting.