Table of Contents

[C] [2020-04-19] The Communicative Value of Using Git Well – Math ∩ Programming git

[2017-05-06] use hg-fast-export to convert gitmercurial

[2016-09-07] git stores snapshots, not diffs git

Different from SVN
It is important to note that this is very different from most SCM systems that you may be familiar with. Subversion, CVS, Perforce, Mercurial and the like all use Delta Storage systems - they store the differences between one commit and the next.
Git does not do this - it stores a snapshot of what all the files in your project look like in this tree structure each time you commit. This is a very important concept to understand when using Git.
Git’s pack files are carefully constructed to effectively use disk caches and provide “nice” access patterns for common commands and for reading recently referenced objects.

STRT [C] NOCOMMIT global hook? git

CREATED: [2018-12-31]

[C] [2019-08-18] Highlights from Git 2.23 - The GitHub Blog git

You may have used git grep to search for some text in your Git project, just as you may have used git diff to view active changes. What do the two have in common? They both display some contents in your repository, and both have support to show the surrounding function context with -p (short for --show-function) or -W (short for --function-context), respectively.

TODO [B] Git blame ignore formatting git

CREATED: [2020-03-23]
Configure your git blame to ignore cleanup changes.

TODO [D] [2019-08-24] Fossil Versus Git | Lobsters git

This article is getting a few things about git wrong. They claim git only supports ‘One check-out per repository’. Heard of git worktree?

[D] My unorthodox, branchless git workflow | Lobsters git

CREATED: [2020-04-07]
Git revise is especially useful for this commit stack workflow, as I call it. I’m a huge fan.

It’s a better rebase. So much better that it should be obligatory. You can split commits, batch rename them, and you don’t have to stash your work first.

TODO a page with my favourite git commands & tricks? gittoblogexobrain

CREATED: [2020-12-30]

image diff
extra worktree dir

TODO [C] The Communicative Value of Using Git Well – Math ∩ Programming git

CREATED: [2020-01-16]
I’ve written up my ideas, under the name ‘Literate Git’, at if you’re interested.
The tool I wrote turns a structured git history into an interactive web page.
There’s an example there of how the ideas might work in a tutorial setting.
After I gave a talk on this work, one of the people in the audience tried it with the Haskell LLVM tutorial:

[2019-08-02] git - How do I remove a submodule? - Stack Overflow git

[2019-12-11] git reflog expire –expire=now –all && git gc –prune=now –aggressive gitgithub

[2019-05-10] git rebase –committer-date-is-author-date –autostash HEAD~1 git

[C] [2020-06-08] Learn to change history with git rebase! git

[2018-11-28] extraction - How to extract one file with commit history from a git repo with index-filter & co - Stack Overflow git

git filter-branch --index-filter 'git read-tree --empty; git reset $GIT_COMMIT -- $your $files $here' -- --all --

[2019-04-10] set up git project commmand git

[D] [2020-07-12] - GitHub + why do we centralize issues, documents for a distributed version… | Hacker News git

for an academic treatment of the defects in Git read: What's Wrong with Git? A Conceptual Design Analysis S. Perez De Rosso and D. Jackson. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013) 

[C] [2018-01-01] detect file type changes git

for r in *; do pushd $r; git whatchanged | grep "\.\.\..T"; popd; done

[D] git ssh debugging gitssh

GIT_SSH_COMMAND='ssh -v' git fetch

[2021-01-11] How to keep your Git history clean with interactive rebase | GitLab git

[C] [2020-11-16] Why Git blame sucks for understanding WTF code (and what you should use instead) | Lobsters git

For archeology I really love git gui blame despite its dated UI

[D] [2019-07-21] git - How do I remove a submodule? - Stack Overflow git

he majority of answers to this question are outdated, incomplete, or unnecessarily complex.

A submodule cloned using git 1.7.8 or newer will leave at most four traces of itself in your local repo. The process for removing those four traces is given by the three commands below:
Jump to search, settings & sitemap