Git

Last Updated: 8/8/2023

Checkout commit

  • To view complete snapshot of the project at a point in time, checkout the commit
  • Restore the working directory to the snapshot stored in that commit
git checkout commit
  • When you checkout, the repo is in detached head state
  • Each commit points to the previous commit, using this git maintains history
  • You can have multiple branches in git
  • Every git has a default branch called master (trunk)
  • Way git represents a branch is using a pointer
  • master is pointing to the last commit
  • As we create new commit master moves forward to point to the last commit
  • Because we can have multiple branches. git need to know what is the branch we are currently working on git uses another pointer called head.
  • head points to the current branch we are working on
  • As we create new commit head and master pointer moves forward to point to the last commit
  • When we checkout a particular commit, head pointer moves to that commit. this is called detached head. head is not attached to branch anymore
  • We shouldn't create new commits only view our code
  • if you create new commit, it will not be reachable by any other commit and it will become dead commit
  • git checks periodically for dead commit, removes it to save space

To attach the head pointer to the master branch

git log --oneline
git log --oneline --all
git checkout master