72 lines
1.7 KiB
Org Mode
72 lines
1.7 KiB
Org Mode
#+TITLE: Git 101
|
|
#+AUTHOR: Amin Kasrou Aouam
|
|
#+PANDOC_OPTIONS: pdf-engine:xelatex
|
|
#+PANDOC_METADATA: theme:metropolis
|
|
* Concepts
|
|
- Version control system (VCS)
|
|
- Distributed
|
|
- /De facto/ standard for code collaboration
|
|
* Reality
|
|
- Powerful system with hard to grasp concepts
|
|
|
|
#+CAPTION: xkcd
|
|
#+ATTR_HTML: :width 170
|
|
[[./assets/xkcd.png]]
|
|
* Structure of a git project
|
|
- The working directory is the folder where we want to manage our project
|
|
- The index is an intermediary step between the files in the directory and the commits
|
|
- A commit is a full snapshot (i.e. copy) of the contents of the working directory at some point
|
|
|
|
#+CAPTION: Structure of a project
|
|
#+ATTR_HTML: :width 300
|
|
[[./assets/staging.png]]
|
|
* Branches
|
|
- A branch is a way to diverge from the commits
|
|
- It allows multiple people to work on the same project without conflicts
|
|
[[./assets/branch.png]]
|
|
[[./assets/divergence.png]]
|
|
* Remotes
|
|
- The real advantage of git is allowing multiple people to work on the same project from different locations
|
|
- A server is used to synchronize the changes between the developers
|
|
#+CAPTION: Remote repositories
|
|
#+ATTR_HTML: :width 300
|
|
[[./assets/remote.png]]
|
|
* Merges
|
|
- The development of the developers has to be combined at some point
|
|
- We can merge a branch on another, importing all the changes that were done
|
|
#+CAPTION: Merging the branches Test and Master
|
|
#+ATTR_HTML: :width 300
|
|
[[./assets/merge.png]]
|
|
* Cheatsheet
|
|
|
|
- Add a file to the index
|
|
|
|
#+begin_src bash
|
|
git add file
|
|
#+end_src
|
|
|
|
- Commit the changes
|
|
|
|
#+begin_src bash
|
|
git commit
|
|
#+end_src
|
|
|
|
|
|
- Change the branch
|
|
|
|
#+begin_src bash
|
|
git checkout branch_name
|
|
#+end_src
|
|
|
|
- Send the changes to the server
|
|
|
|
#+begin_src bash
|
|
git push
|
|
#+end_src
|
|
|
|
- Get the changes from the server
|
|
|
|
#+begin_src bash
|
|
git pull
|
|
#+end_src
|