際際滷

際際滷Share a Scribd company logo
git



      Handlino   http://handlino.com/
basics



Handlino   http://handlino.com/
git                  ...
?
?
    ? Everything is local
    ? : commit / tag / tree / blob
?
              Handlino   http://handlino.com/
git clone git://host/project.git
git clone ssh://host/project
git clone /path/to/project


#     project/

#     project/.git/

           Handlino   http://handlino.com/
cd project


git log
git log --graph
git branch -a
git blame src.rb


gitx # http://gitx.frim.nl
gitk # built-in


                   Handlino   http://handlino.com/
Handlino   http://handlino.com/
Handlino   http://handlino.com/
^界看馨馨庄岳 ̄
                                                sha1 digest

commit 9d38288f99caa27b7368d8a2b26c3b545f0eb37b
Author: tka lu <tka@mail2000.com.tw>
Date:   Wed Dec 23 08:51:59 2009 +0800

   fix label_render in form_interface_helper




              Handlino   http://handlino.com/
more ^git log ̄
git log <from>...<to> # <to> is default to HEAD


git log 22f9d..5d113
git log 22f9d..5d113 --name-only
git log 22f9d..5d113 -u
git log HEAD~10..


git log --pretty=oneline
   --abbrev-commit
   --decorate
   HEAD~10..



                       Handlino   http://handlino.com/
more ^git log ̄
git config alias.lol

   'log --pretty=oneline --abbrev-commit --graph --decorate'



git lol '@{10 days ago}..'

git lol '@{1 week ago}..'
git lol '@{1 week ago}..'

git lol '@{2009-12-20 01:01:01}..'




                       Handlino   http://handlino.com/
vim src1.pl src2.pl


git status #

git diff #



git add src1.pl src2.pl #                               staging area



git diff --cached #         staging area

git commit -m "An *awesome* work" #               staging area



                      Handlino   http://handlino.com/
Staging area



git add                  git commit




    Handlino   http://handlino.com/
git pull #          ○

git push #          !



git pull github master
git push github bug-31337

             Handlino   http://handlino.com/
mkdir NewProject
cd NewProject
git init
echo "New Project" > README
git add README
git ci -m "first commit!"

           Handlino   http://handlino.com/
git reset HEAD^ #

git reset <sha1> #


vim src1.pl


git add src1.pl src2.pl
git commit -m "An *awesome* work"

              Handlino   http://handlino.com/
git log
                              git status
git branch
                              git commit
git checkout
                              git merge
git add
                              git tag
git diff



             Handlino   http://handlino.com/
branch / merge



   Handlino   http://handlino.com/
branch
git branch
git branch -a


git branch <new branch name>
git checkout <branch name>
git checkout -b <new branch name>



                Handlino   http://handlino.com/
merge
git checkout <branch name>
git merge <other branch name>


git checkout job-a
git merge job-b
# job-a <-job-b

           Handlino   http://handlino.com/
What is a ^branch ̄ ?


 c866




master


         Handlino   http://handlino.com/
What is a ^branch ̄ ?

       git commit

c866       a957




         master


                  Handlino   http://handlino.com/
What is a ^branch ̄ ?

              git commit

c866   a957        8ecd




                 master


               Handlino   http://handlino.com/
What is a ^branch ̄ ?

                         git commit


c866   a957       8ecd              316f




                                master


              Handlino   http://handlino.com/
What is a ^branch ̄ ?
                                           git commit


c866   a957       8ecd              316f         1aee




                                                master



              Handlino   http://handlino.com/
What is a ^branch ̄ ?

                                                   git commit

c866   a957       8ecd              316f        1aee     c3f2




                                                       master



              Handlino   http://handlino.com/
What is a ^branch ̄ ?


c866       a957




         master

       git commit
                  Handlino   http://handlino.com/
What is a ^branch ̄ ?
  bug-37
                     git checkout -b bug 37
                     git commit
           ce33




c866       a957




         master

       git commit
                  Handlino   http://handlino.com/
What is a ^branch ̄ ?
             bug-37                                 git commit

       ce33        1aee                     c3f2




c866   a957       8ecd               316f           1aee




                                                   master

                                                           git commit
              Handlino    http://handlino.com/
What is a ^branch ̄ ?
       ce33        1aee                     c3f2




c866   a957       8ecd               316f          1aee     1aee




              git merge bug-37                            master


              Handlino    http://handlino.com/
What is a ^branch ̄ ?
                                                            ^merge ̄
       ce33        1aee                     c3f2
                                                            commit

c866   a957       8ecd               316f          1aee     1aee




              git merge bug-37                            master


              Handlino    http://handlino.com/
Current branch


c866    a957       8ecd              316f        1aee     c3f2




                                                        master



               Handlino   http://handlino.com/
Current branch

                                                        HEAD


c866    a957       8ecd              316f        1aee     c3f2




                                                        master



               Handlino   http://handlino.com/
Current branch
                                      commit            HEAD


c866    a957       8ecd              316f        1aee     c3f2




                                                        master



               Handlino   http://handlino.com/
Current branch
               bug-37

                                                    HEAD
        ce33        1aee                     c3f2




c866    a957       8ecd               316f           1aee




                                                    master


               Handlino    http://handlino.com/
Current branch
                bug-37


          ce33        1aee                     c3f2




c866      a957       8ecd               316f           1aee
                                           HEAD

       git checkout bug-37
                                                      master


                 Handlino    http://handlino.com/
work?ow



Handlino   http://handlino.com/
Topic Branch




  Handlino   http://handlino.com/
Topic Branch
git checkout -b js-refactor


vim foo.js bar.js
git commit -a -m "delete weird codes"


vim foo.js bar.js
git commit -a -m "add good code."


git checkout master
git merge js-refactor


git pull
git push




                        Handlino    http://handlino.com/
branch from master,
 merge to master.
                               css-refactor




                                              master

                bug-3414


     Handlino   http://handlino.com/
Branch

rc - deploy to staging
release - deploy to production
master - dev trunk
(others) - dev topics



            Handlino   http://handlino.com/
topic ★ master ★ rc ★ release
(master) git checkout -b awesome-feature
# hack, hack, hack
git checkout master
git merge awesome-feature


git co rc
git merge master
# deploy. test staging


git co release
git merge rc
# deploy to production



                         Handlino   http://handlino.com/
stable master
(master) git checkout -b awesome-feature
# hack, hack, hack
(master) git checkout -b bug-fix-123
# hack, hack, hack


git checkout test
(test) git merge awesome-feature
(test) git merge bug-fix-123
# run QA tests
(test) git checkout master
(master) git merge test
# deploy master to production



                      Handlino   http://handlino.com/
? git help <command>
? gitready.com
? gitcasts.com


            Handlino   http://handlino.com/

More Related Content

Git

  • 1. git Handlino http://handlino.com/
  • 2. basics Handlino http://handlino.com/
  • 3. git ... ? ? ? Everything is local ? : commit / tag / tree / blob ? Handlino http://handlino.com/
  • 4. git clone git://host/project.git git clone ssh://host/project git clone /path/to/project # project/ # project/.git/ Handlino http://handlino.com/
  • 5. cd project git log git log --graph git branch -a git blame src.rb gitx # http://gitx.frim.nl gitk # built-in Handlino http://handlino.com/
  • 6. Handlino http://handlino.com/
  • 7. Handlino http://handlino.com/
  • 8. ^界看馨馨庄岳 ̄ sha1 digest commit 9d38288f99caa27b7368d8a2b26c3b545f0eb37b Author: tka lu <tka@mail2000.com.tw> Date: Wed Dec 23 08:51:59 2009 +0800 fix label_render in form_interface_helper Handlino http://handlino.com/
  • 9. more ^git log ̄ git log <from>...<to> # <to> is default to HEAD git log 22f9d..5d113 git log 22f9d..5d113 --name-only git log 22f9d..5d113 -u git log HEAD~10.. git log --pretty=oneline --abbrev-commit --decorate HEAD~10.. Handlino http://handlino.com/
  • 10. more ^git log ̄ git config alias.lol 'log --pretty=oneline --abbrev-commit --graph --decorate' git lol '@{10 days ago}..' git lol '@{1 week ago}..' git lol '@{1 week ago}..' git lol '@{2009-12-20 01:01:01}..' Handlino http://handlino.com/
  • 11. vim src1.pl src2.pl git status # git diff # git add src1.pl src2.pl # staging area git diff --cached # staging area git commit -m "An *awesome* work" # staging area Handlino http://handlino.com/
  • 12. Staging area git add git commit Handlino http://handlino.com/
  • 13. git pull # ○ git push # ! git pull github master git push github bug-31337 Handlino http://handlino.com/
  • 14. mkdir NewProject cd NewProject git init echo "New Project" > README git add README git ci -m "first commit!" Handlino http://handlino.com/
  • 15. git reset HEAD^ # git reset <sha1> # vim src1.pl git add src1.pl src2.pl git commit -m "An *awesome* work" Handlino http://handlino.com/
  • 16. git log git status git branch git commit git checkout git merge git add git tag git diff Handlino http://handlino.com/
  • 17. branch / merge Handlino http://handlino.com/
  • 18. branch git branch git branch -a git branch <new branch name> git checkout <branch name> git checkout -b <new branch name> Handlino http://handlino.com/
  • 19. merge git checkout <branch name> git merge <other branch name> git checkout job-a git merge job-b # job-a <-job-b Handlino http://handlino.com/
  • 20. What is a ^branch ̄ ? c866 master Handlino http://handlino.com/
  • 21. What is a ^branch ̄ ? git commit c866 a957 master Handlino http://handlino.com/
  • 22. What is a ^branch ̄ ? git commit c866 a957 8ecd master Handlino http://handlino.com/
  • 23. What is a ^branch ̄ ? git commit c866 a957 8ecd 316f master Handlino http://handlino.com/
  • 24. What is a ^branch ̄ ? git commit c866 a957 8ecd 316f 1aee master Handlino http://handlino.com/
  • 25. What is a ^branch ̄ ? git commit c866 a957 8ecd 316f 1aee c3f2 master Handlino http://handlino.com/
  • 26. What is a ^branch ̄ ? c866 a957 master git commit Handlino http://handlino.com/
  • 27. What is a ^branch ̄ ? bug-37 git checkout -b bug 37 git commit ce33 c866 a957 master git commit Handlino http://handlino.com/
  • 28. What is a ^branch ̄ ? bug-37 git commit ce33 1aee c3f2 c866 a957 8ecd 316f 1aee master git commit Handlino http://handlino.com/
  • 29. What is a ^branch ̄ ? ce33 1aee c3f2 c866 a957 8ecd 316f 1aee 1aee git merge bug-37 master Handlino http://handlino.com/
  • 30. What is a ^branch ̄ ? ^merge ̄ ce33 1aee c3f2 commit c866 a957 8ecd 316f 1aee 1aee git merge bug-37 master Handlino http://handlino.com/
  • 31. Current branch c866 a957 8ecd 316f 1aee c3f2 master Handlino http://handlino.com/
  • 32. Current branch HEAD c866 a957 8ecd 316f 1aee c3f2 master Handlino http://handlino.com/
  • 33. Current branch commit HEAD c866 a957 8ecd 316f 1aee c3f2 master Handlino http://handlino.com/
  • 34. Current branch bug-37 HEAD ce33 1aee c3f2 c866 a957 8ecd 316f 1aee master Handlino http://handlino.com/
  • 35. Current branch bug-37 ce33 1aee c3f2 c866 a957 8ecd 316f 1aee HEAD git checkout bug-37 master Handlino http://handlino.com/
  • 36. work?ow Handlino http://handlino.com/
  • 37. Topic Branch Handlino http://handlino.com/
  • 38. Topic Branch git checkout -b js-refactor vim foo.js bar.js git commit -a -m "delete weird codes" vim foo.js bar.js git commit -a -m "add good code." git checkout master git merge js-refactor git pull git push Handlino http://handlino.com/
  • 39. branch from master, merge to master. css-refactor master bug-3414 Handlino http://handlino.com/
  • 40. Branch rc - deploy to staging release - deploy to production master - dev trunk (others) - dev topics Handlino http://handlino.com/
  • 41. topic ★ master ★ rc ★ release (master) git checkout -b awesome-feature # hack, hack, hack git checkout master git merge awesome-feature git co rc git merge master # deploy. test staging git co release git merge rc # deploy to production Handlino http://handlino.com/
  • 42. stable master (master) git checkout -b awesome-feature # hack, hack, hack (master) git checkout -b bug-fix-123 # hack, hack, hack git checkout test (test) git merge awesome-feature (test) git merge bug-fix-123 # run QA tests (test) git checkout master (master) git merge test # deploy master to production Handlino http://handlino.com/
  • 43. ? git help <command> ? gitready.com ? gitcasts.com Handlino http://handlino.com/