posts: add git basics skeleton
This commit is contained in:
parent
e1ad707bcd
commit
1998ff4e40
74
content/posts/git-basics.md
Normal file
74
content/posts/git-basics.md
Normal file
|
@ -0,0 +1,74 @@
|
|||
---
|
||||
title: "Git Basics"
|
||||
date: 2020-08-27T16:22:07+02:00
|
||||
draft: false # I don't care for draft mode, git has branches for that
|
||||
description: ""
|
||||
tags:
|
||||
- git
|
||||
- cli
|
||||
categories:
|
||||
- programming
|
||||
series:
|
||||
- Git basics
|
||||
favorite: false
|
||||
---
|
||||
|
||||
[Git][git] is a distributed version control system. Originally written by
|
||||
[Linus Torvalds][linus] to be used with the development of the [Linux
|
||||
kernel][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.
|
||||
|
||||
[git]: https://git-scm.com/
|
||||
[linus]: https://en.wikipedia.org/wiki/Linus_Torvalds
|
||||
[kernel]: https://www.kernel.org/linux.html
|
||||
|
||||
<!--more-->
|
||||
|
||||
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
|
||||
* Multiple remotes
|
||||
* Example use-case: shared branches and local sandboxes
|
||||
* `pull`/`fetch`
|
||||
* Our lord and savior: `git pull --rebase`
|
||||
|
||||
You should head to [Learn git branching][learn-branching] to practice those
|
||||
notions with a nice visualization.
|
||||
|
||||
[learn-branching]: https://learngitbranching.js.org/
|
Loading…
Reference in a new issue