git

How to find large files in Git history: a one-liner

One liner: git rev-list --objects --all \ | git cat-file --batch-check='%(objecttype) %(objectname) %(objectsize) %(rest)' \ | sed -n 's/^blob //p' \ | sort --numeric-sort --key=2 \ | cut -c 1-12,41- \ | $(command -v gnumfmt || echo numfmt) --field=2 --to=iec-i --suffix=B --padding=7 --round=nearest Credit SO: https://stackoverflow.com/a/42544963/88814

How to view Git changes on a single branch since its creation

The command: git log --oneline master..feature/some-branch Will show commits on feature branch since it was forked off master. Suppose you have a repo that looks like this: base - A - B - C - D (master) \ \- X - Y - Z (myBranch) Verify the repo status: > git checkout master Already on 'master' > git status ; git log --oneline On branch master nothing to commit, working directory clean d9addce D 110a9ab C 5f3f8db B 0f26e69 A e764ffa base and for myBranch:

How-to: Git clean up .orig files generated after conflict resolution

Preamble After a merge conflict resolution you're often left with files ending with .orig extension. I have them added to my global .gitignore. Hence I can't easily get rid of them with regular: git clean -fd. Solution git clean has -e argument for a regular expression to match files. To preview what will happen: git clean -e '!*.orig' --dry-run To actually delete the files: git clean -e '!*.orig' -f It's that simple.

If it feels `git clone` is throttled on Windows...

Symptoms of the problem: internet connection is fast and a torrent download of Ubuntu can go at 10MB/s, but git clone gets 'stuck' at 500-600KB/s.

Zipping all relevant files in a git repo

How to make a zip copy of all git repo files without garbage

Adding all existing submodules to a git repo

You have a git repo which contains sub-directories which are git repos themselves and now you want them to become submodules. Here's a quick automatic way to add them all.

Use p4merge from Perforce as default git mergetool

Resolving merge conflicts is one the things that I hate most. Lets make it a little easier with p4merge.