packed • Loose objects are stored as separate compressed files, in dirs • Packed objects are stored in packfiles, huge binary files containing lots of objects
never lose track of your data. • Once your changes have been staged, they're safe • Even if you rebase, delete branches, or even rewrite history, everything is still there • At least until next garbage collection, that is
tree 40f6a21f79b2bd607934dd587d76720b84715a97 Mac 100644 blob 4965253d28bad16c822eabc7cc424fa9cad571d1 filelist.txt 040000 tree 8a151447c6982522075993514e5fe9302e0d99d1 iOS Tesla:Repo magnus$
E-butik.se uses it for storing customer-editable templates • Whenever you want to push things to a server, because it’s cool • (But this requires the git binary)
• Create Git objects like any other PHP object, persist them to the repo, flush your changes • Fetch objects, read them, get proxies when they’re not directly loaded * Or at least a lot of it
immutable, once they have a SHA • Clone them to get mutable copies (without a SHA) • But not using the clone keyword… • Do your changes, then persist into the repo and flush.
• GitternIndexAdapter • Abstracts object manipulations so Git almost seems like any other filesystem • Leaky abstraction, either read-only or manual commits.
have ~90% line coverage though) • Full object model coverage (annotated tags, symlinks and submodules) • Reflog • Full commitish parsing • Configuration • Remote?