Githandson: Difference between revisions
From Gridkaschool
Jump to navigationJump to search
Line 19: | Line 19: | ||
** git config --global core.editor vim |
** git config --global core.editor vim |
||
* git clone git@naf-school04: |
* git clone git@naf-school04:gitlab |
||
* cd puppet |
* cd puppet |
||
* git status |
* git status |
Revision as of 10:02, 8 September 2015
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