blog/content/posts/git-basics.md

2 KiB

title date draft description tags categories series favorite
Git Basics 2020-08-27T16:22:07+02:00 false
git
cli
programming
Git basics
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
  • 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 to practice those notions with a nice visualization.