Githandson

From Gridkaschool
Revision as of 10:02, 8 September 2015 by BenJones (talk | contribs) (Git Hands-on)

Git Hands-on

All of these exercises should be followed on naf-school03 using your school account

  • mkdir -p ~/school/git
  • cd ~/school/git
  • Configure git
    • git config --global user.name "Your Name"
    • git config --global user.email you.email@domain
  • cat ~/.gitconfig
  • optional extras for config (and obviously editor is mutually exclusive)
    • git config --global color.ui auto # If you like colours!
    • git config --global alias.co checkout
    • git config --global alias.st status
    • git config --global alias.ci commit
    • git config --global core.editor emacs # flame bait
    • git config --global core.editor vim
  • git clone git@naf-school04:gitlab
  • cd puppet
  • git status
  • vi ${USER}.txt
    • write something
  • git status # what is updated? Working tree, Index or Repository?
    • git diff
    • git diff HEAD
    • git diff --cached
  • git add ${USER}.txt
    • git status
    • git diff
    • git diff HEAD
    • git diff --cached
  • git commit -m "Add user text file"
    • git status
    • git diff
    • git diff HEAD
    • git diff --cached
  • git push origin master
    • this might not work! Why?
    • tip: what does “git pull --rebase” do?
  • git checkout -b ${USER} master # specifying "master" here is just a good habit. Always beware of defaults.
  • vi config.yaml
    • Add a user to the list
  • git add -p
  • git commit -m "Adding ${USER} to users list"
  • git push origin ${USER}
  • git checkout master
  • git merge ${USER}
  • git push origin master
    • What happens?
  • git checkout -b newfeature_${USER} master
  • vi config.yaml
    • add a server
    • commit the change (with a good message!)
    • git log
  • Oops! We mistyped the server, vi config.yaml again
    • change the name of the server
    • commit the change
    • git rebase -i HEAD~2
    • use “fixup” or “squash” on the fix (make sure you understand the difference)
    • git log # examine the differences