Githandson
From Gridkaschool
Jump to navigationJump to search
Git Hands-on
All of these exercises should be followed on naf-school01 using your school account
- 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 gitolite3@naf-school02:gitlab
- cd gitlab
- 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 feature_${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 feature_${USER}
- git checkout master
- git merge feature_${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