diff --git a/posts/revision-control/git-first-steps.rst b/posts/revision-control/git-first-steps.rst index b1e1c93..061f6a7 100644 --- a/posts/revision-control/git-first-steps.rst +++ b/posts/revision-control/git-first-steps.rst @@ -1,7 +1,7 @@ .. title: Git! First Steps... .. date: 2019-07-22 .. slug: git-first-steps -.. updated: 2019-07-22 +.. updated: 2019-07-23 .. status: published .. tags: git, revision-control .. category: revision-control @@ -24,17 +24,17 @@ I'd like to start my post with a requirement, ``git``. It has to be installed on A Few Concepts ============== -I'm going to try to explain a few concepts in as simple a way, even though not always totally accurate, possible as I can. +I'm going to try to explain a few concepts in a very simple way. That means I am sacrificing accuracy for ease of understanding. What is revision control? ------------------------- -`Wikipedia `_ describes is as: +`Wikipedia `_ describes it as: - A component of software configuration management, version control, + "A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, computer programs, large web sites, and - other collections of information. + other collections of information." In simple terms, it keeps track of what you did and when as long as you log that on every change that deserve to be saved. This is a very good way to keep backups of previous changes, also a way to have a history documenting who changed what and for what reason (NO! Not to blame, to understand why and how to fix it). @@ -42,14 +42,14 @@ This is a very good way to keep backups of previous changes, also a way to have What is a git commit? --------------------- -You can read all about what a commit is on the `manual page `_ of ``git-commit``. +You can read all about what a commit is on the manual page of `git-commit `_. But the simple way to understand this is, it takes a snapshot of your work and names it a ``SHA`` number (very long string of letters and numbers). A ``SHA`` is a unique name that is derived from information from the current commit and every commit that came before since the beginning of the tree. In other words, there is an extremely low chance that 2 commits would ever have the same ``SHA``. Let's not also forget the security implication from this. If you have a clone of a repository and someone changed a commit somewhere in the tree history, every commit including the one changed and newer will have to change names. At that point, your fork will have a mismatch and you can know that the history was changed. What is the ``git add`` thingy for? ----------------------------------- -Well the ``git-add`` `man page `_ is very descriptive about the subject but, once again, I'll try to explain it in metaphors. +Well the `git-add `_ manual page is very descriptive about the subject but, once again, I'll try to explain it in metaphors. Think of it this way, ``git-commit`` saves the changes, but what changes ? That's exactly the question to answer. What changes ? What if I want to commit some changes but not others ? What if I want to commit all the code in one commit and all the comments in another ? @@ -58,7 +58,7 @@ That's where the "staging area" comes in play. You use ``git-add`` to stage file Practice ======== -Now that we've already explained a few concepts, let's see how this all fits together, shall we ? +Now that we've already explained a few concepts, let's see how this all fits together. Step 1: Basic git configuration -------------------------------