Difference between revisions of "Githandson"
From Gridkaschool
Line 10: | Line 10: | ||
* cat ~/.gitconfig |
* cat ~/.gitconfig |
||
− | * optional extras |
+ | * optional extras for config (and obviously editor is mutually exclusive) |
** git config --global color.ui auto # If you like colours! |
** git config --global color.ui auto # If you like colours! |
||
** git config --global alias.co checkout |
** git config --global alias.co checkout |
||
Line 16: | Line 16: | ||
** git config --global alias.ci commit |
** git config --global alias.ci commit |
||
** git config --global core.editor emacs # flame bait |
** git config --global core.editor emacs # flame bait |
||
− | ** git config --global core. |
+ | ** git config --global core.editor vim |
* git clone gitolite3@naf-school02:gitlab |
* git clone gitolite3@naf-school02:gitlab |
||
Line 40: | Line 40: | ||
** this might not work! Why? |
** this might not work! Why? |
||
** tip: what does “git pull --rebase” do? |
** 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 |
Revision as of 10:04, 3 September 2014
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