Difference between revisions of "Githandson"
From Gridkaschool
(→Git Hands-on) |
(→Git Hands-on) |
||
Line 32: | Line 32: | ||
** git diff HEAD |
** git diff HEAD |
||
** git diff --cached |
** git diff --cached |
||
− | * git commit -m |
+ | * git commit -m "Add user text file" |
** git status |
** git status |
||
** git diff |
** git diff |
Revision as of 11:31, 26 August 2015
Git Hands-on
All of these exercises should be followed on naf-school03 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 git@naf-school04:puppet
- 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 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