Further Resources
Last updated on 2024-10-04 | Edit this page
Estimated time: 12 minutes
Overview
Questions
- Wow there is a lot I’m overwhelmed, will I ever know it all?
- How can I keep on learning more about Git?
- What material would you recommend?
Objectives
- Signpost some useful resources when you have more questions.
- Highlight RSS and Mastodon as useful ways to find out more about Git on a regular basis.
Will I Ever Know it All?
Probably not. There is simply too much to Git and associated tools like GitHub/GitLab and Pre-Commit to have any hope of knowing everything there is to about all aspects, and besides the tools, just like programming languages, evolve over time. That shouldn’t dishearten you from learning what you need to as you go.
How can I keep on learning more about Git?
Practise makes perfect, or so the saying goes, but in the case of computing it really is true, if you don’t practise using the tools or writing code you will not improve. Whilst you might not reach perfection you will become more proficient.
What material would you recommend?
This course is the result of the author(s) learning path which was not undertaken in isolation but a consequence of years of usage and a lot of reading. Below there are links to a number of references, blogs, videos and so forth for finding out more about Git, GitHub and so forth.
References
- Pro Git a comprehensive book about Git, very, very detailed.
- Learn Git - Tutorials, Workflows and Commands | Atlassian excellent resources from Atlassian their tutorials are clear and informative and inspired much of this course.
Videos
Former founder of GitHub and co-author of the excellent book Pro Git Scott Chacon is big on Git advocacy. His book and articles are well worth reading and his videos are worth watching too.
- So You Think You Know Git - Scott Chacon FOSDEM 2024 an excellent talk by one of the co-founders of GitHub.
- So You Think You Know Git (Part 2) - Scott Chacon DevWorld 2024 another excellent talk.
These are summarised in the following series of blog posts.
Blogs
RSS
Really Simply Syndication is a much under appreciated/used technology that makes it really simple to syndicate blog posts from a range of sources to give yourself a customised reading list rather than being at the whim of whatever is in your social media feeds when you happen to take a look at them.
Many of the blogs linked above have RSS feeds and whilst not all posts will be focused on Git you can sometimes get specific feeds for topics. I would highly recommend using RSS reader not just for improving your understanding of Git but all other research areas (e.g. Python, R, Open Research et.c) Some useful resources for RSS feeds are below.
- OpenRSS is a simple way of creating RSS feeds for sites, even if they don’t natively provided them.
- Feeder open source, private feed reader that runs on your Android device.
- Feedly web-based feed aggregator.
- FreshRSS a free, self-hostable feeds aggregator if you run your own websites.
- Tiny Tiny RSS another free, self-hostable feeds aggregator if you run your own websites.
Learning Resources
Various tutorials and tools that help explain how Git works.
- Git Better
- Oh Shit, Git!?!
- Oh My Git! - a game for learning Git.
- Explain Git with D3
- Learn Git Branching
- The Version Control Book
- Git & GitHub through GitKraken Client - From Zero to Hero
- git-sim : visually simulate Git operations in your own repos
- Git from the inside out
- Git School a visual sandbox/playground.
- Flight rules for git an excellent clear set of resources of how to solve different problems/scenarios.
Julia Evans (aka b0rk)
Julia Evans (aka b0rk) writes useful and insightful posts on different aspects of Git that help tackle fundamental but often misunderstood concepts.
- How HEAD works in git
- Popular git config options
- Dealing with diverged git branches
- Inside .git
- Do we think of git commits as diffs, snapshots, and/or histories?
- git branches: intuition & reality
- How git cherry-pick and revert use 3-way merge
- git rebase: what can go wrong?
- Confusing git terminology
- Some miscellaneous git facts
- In a git repository, where do your files live?
These have been compiled into two zines Oh shit, git! and How Git Works.
Scott Chacon
Former founder of GitHub and co-author of the excellent book Pro Git is big on Git advocacy. His videos and articles are well worth reading (as is his book).
General
- Little Things I Like to Do with Git – CSS Wizardry – Web Performance Optimisation
- Modern Git Commands and Features You Should Be Using
- Advanced Git Features You Didn’t Know You Needed
- unixorn/git-extra-commands: A collection of git utilities, useful extra git scripts, tutorials and other useful articles.
- Git as debugging tool - Lucas Seiki Oshiro
Commits
- Conventional Commits how to structure commit messages to be informative.
- Git Commit Patterns
- Write Better Commits, Build Better Projects - The GitHub Blog
Reviewing
- Code-Review.org - an online tutorial for code review.
- GitHub Pull Request Pitfalls
- Tidyteam code review principles (derived from How to do a Code Review).
- pyOpenSci Software Peer Review Guidebook
Internals
- Git’s database internals I : packed object store
- Git’s database internals II: commit history queries
- Git’s database internals III: file history queries
- Git’s database internals IV: distributed synchronization
- Git’s database internals V: scalability
- In a git repository, where do your files live?
- Git Concepts in Less than 10 minutes
Forges
- The GitHub Blog updates, ideas, and inspiration from GitHub.
- GitLab Blogs various categories of blogs from GitLab.
StackOverflow
You will likely have already come across StackOverflow already. Its a popular forum for asking and answering questions about almost any aspect of computing (with many subject specific sub-forums in StackExchange). It is worth creating an account here even if you never intend to ask questions as it is possible to bookmark questions and answers for future reference. Bookmarks can be organised into lists to make it easier to find specific topics.
When searching use the [<tag>]
notation to search
for posts with specific tags, for example to search for posts tagged
with git
you would include [git]
in your
search terms, for github
you would include
[github]
and so on.
If you do ask questions try and provide as much information as possible in your question as to what you have tried (in terms of code and/or commands), the exact output (copy and paste) and format your post using Markdown to make it easier for people to read.
Also consider creating a minimal reproducible example to demonstrate your problem to others so they can recreate the problem, investigate where things have gone wrong and provide useful answers.
Mastodon
There are a lot of technical users who post their articles, ask
questions and help each other out about all sorts of languages and tools
on Mastodon. Join an instance and follow #git
to keep
abreast of things and find out what others struggle with and how they
can be solved.
Fedi.Tips is a useful guide to
getting started with Mastodon and once you’re setup it can be useful to
use the Advanced
Web Interface and add a column for the #git
tag. A good
Android client is Fedilab.