- My Sites
- Git User’s Manual
- vogella.com: Tutorial
- index / reference
- Refs and Names
- gitrepository-layout Documentation
- man page / env vars
- pickaxe searches for commits
- git merge-base finds best common ancestor(s) between two commits to use in a three-way merge. One common ancestor is better than another common ancestor if the latter is an ancestor of the former. A common ancestor that does not have any better common ancestor is a best common ancestor, i.e. a merge base. Note that there can be more than one merge base for a pair of commits.
- rev-parse, rev-list, show-ref,
- Hooks / Triggers
- template directory: init.templatedir
- Pro Git: Full book (html version)
- Finding a branch point with git
- That specific comment points out the only solution that sort of works.
- Bag: one guys tips
- Git 201: Slightly More Advanced
- Git Tips
- Git tips from the trenches
- Performance / scaling
- Git doesn't work that great for > 10^6 files and/or commits.
- thread: Git performance results on a large repository
- From FB eng.
- How fast is git?
- Security / etc
- gc |
git count-objects -v # Try using repack instead of gc --aggressive git repack -f -a -d --depth=250 --window=250 git count-objects -v
Excerpted from Linus’ mail
So the equivalent of "git gc --aggressive" - but done properly - is to do (overnight) something like
git repack -a -d --depth=250 --window=250
where that depth thing is just about how deep the delta chains can be (make them longer for old history - it's worth the space overhead), and the window thing is about how big an object window we want each delta candidate to scan.