Basic

Details

  1. What is VCS?
  2. Git and git cli
    1. Creating a repository (git init)
    2. Staging area (git add)
    3. Committing (git commit)
    4. Branching and merging (git branch, git checkout, git merge)
    5. Resolving merge conflicts
    6. Working with remote repositories (push/pull/fetch)
  3. GitHub
    1. What is a Pull Request?
    2. Creating/merging PRs
  1. https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/
  2. https://about.gitlab.com/topics/version-control/
  3. https://serengetitech.com/tech/introduction-to-git-and-types-of-version-control-systems/

Intermediate

Details

  1. Git log
  2. Finding commits
  3. Reverting changes (git revert, git reset)
  4. Git stash
  5. Branch management, branching workflows
  6. Tagging
  1. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History
  2. https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things
  3. https://git-scm.com/docs/git-stash
  4. https://git-scm.com/book/en/v2/Git-Branching-Branch-Management
  5. https://git-scm.com/book/en/v2/Git-Basics-Tagging
  6. https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows

Advanced

Details

  1. Recovering from issues
  2. Git reset (hard, soft)
  3. Gitflow
  4. Git bisect
  1. https://www.git-scm.com/docs/git-bisect
  2. https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
  3. https://ohshitgit.com/
  4. https://git-scm.com/docs/git-reset
  5. https://www.atlassian.com/git/tutorials/undoing-changes/git-reset

Notes

Change date of a commit

LC_ALL=C GIT_COMMITTER_DATE="Thu Sep 05 16:00:18 2024 +0700" git commit --amend --no-edit --date "Thu Sep 06 16:00:18 2024 +0700"

Change default editor for Git

git config --global core.editor "vim"

to remove any old, conflicting branches

git remote prune origin
git fetch origin