2.6 KiB
title | date | draft | description | tags | categories | series | favorite | ||||
---|---|---|---|---|---|---|---|---|---|---|---|
Git Basics | 2020-08-27T16:22:07+02:00 | false |
|
|
|
false |
Git is a distributed version control system. Originally written by Linus Torvalds to be used with the development of the Linux kernel, it has now become the go-to way to share work between multiple developers.
In this article I will summarise what I feel to be the next-step
basics of git
, explaining each notion along the way.
I assume at least passing knowledge of git
, and will therefore skip the
justifications for using git
instead of flinging tarballs at one another.
I will also be skipping the explanation for the basic workflow of git add
,
git commit
, and git push
. You can consider this guide to be aimed at 3rd
year students at EPITA, who have used git
for a whole year to submit their
project but have not explored some of its more powerful features.
Branches and references
-
Branches and merges
- Decentralised
- Merges are easy (assuming no conflicts)
-
What HEAD is
- Why guillotine
- What ARE references anyway
-
Relative references and other shortcuts
History manipulation
-
Cherry-picking
- Easy to do
- Most likely not what you want
- CONFLICTS
-
The power of the rebase, Luke
- Work on your own
- Commit early, commit often
- Clean-up merge requests
Branches and decentralised distribution
- Local/remote branch
- Remote-tracking branches?
- Why doesn't my new
dev
branch push to the remote
- Why doesn't my new
- Multiple remotes
- Example use-case: shared branches and local sandboxes
pull
/fetch
- Our lord and savior:
git pull --rebase
- Our lord and savior:
Going further
I advise you to check out Learn git branching to practice a few of the notions I just wrote about, with a nice visualization of the commit graph to explain what you are doing along the way.
Furthermore, the Pro Git book is available online for free, and
contains a lot of great content. You can read it whole, but I especially
recommend checking out chapter 7 (Git Tools) and chapter 8 (Git
Configuration). If you want to learn about the inner workings of git
and how
it stores the repository on your hard-drive, checkout chapter 10 (Git
Internals).