SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
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/
“commit”
                                                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/
workflow



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/

Mais conteúdo relacionado

Semelhante a Git

Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android DeveloperEffective
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With GitNick Quaranto
 
Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Ariejan de Vroom
 
Git Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a BossGit Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a Bosstmacwilliam
 
Gitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesGitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesJavier Alvarez
 
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)Carlos Duarte do Nascimento
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remotoRodrigo Branas
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android DeveloperEffective
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android DeveloperEffectiveUI
 
Git Basics at Rails Underground
Git Basics at Rails UndergroundGit Basics at Rails Underground
Git Basics at Rails UndergroundAriejan de Vroom
 
Keep your GIT history clean
Keep your GIT history cleanKeep your GIT history clean
Keep your GIT history cleantomasbro
 

Semelhante a Git (20)

Git For The Android Developer
Git For The Android DeveloperGit For The Android Developer
Git For The Android Developer
 
Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Git Basics - RubyFest 2009
Git Basics - RubyFest 2009
 
Git Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a BossGit Magic: Versioning Files like a Boss
Git Magic: Versioning Files like a Boss
 
Gitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de BranchesGitflow - Una metología para manejo de Branches
Gitflow - Una metología para manejo de Branches
 
git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)git fail --force (make it up with your pull requests)
git fail --force (make it up with your pull requests)
 
M.Mozūras - git
M.Mozūras - gitM.Mozūras - git
M.Mozūras - git
 
Git社内勉強会
Git社内勉強会Git社内勉強会
Git社内勉強会
 
Loading...git
Loading...gitLoading...git
Loading...git
 
git session --interactive
git session --interactivegit session --interactive
git session --interactive
 
#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto#5 - Git - Contribuindo com um repositório remoto
#5 - Git - Contribuindo com um repositório remoto
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android Developer
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android Developer
 
Git Basics at Rails Underground
Git Basics at Rails UndergroundGit Basics at Rails Underground
Git Basics at Rails Underground
 
How to use git without rage
How to use git without rageHow to use git without rage
How to use git without rage
 
simple Git
simple Git simple Git
simple Git
 
Presentacion git
Presentacion gitPresentacion git
Presentacion git
 
Keep your GIT history clean
Keep your GIT history cleanKeep your GIT history clean
Keep your GIT history clean
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Git Basics Philips
Git Basics PhilipsGit Basics Philips
Git Basics Philips
 

Mais de Kang-min Liu

The architecture of search engines in Booking.com
The architecture of search engines in Booking.comThe architecture of search engines in Booking.com
The architecture of search engines in Booking.comKang-min Liu
 
Elasticsearch 實戰介紹
Elasticsearch 實戰介紹Elasticsearch 實戰介紹
Elasticsearch 實戰介紹Kang-min Liu
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Kang-min Liu
 
Integration Test With Cucumber And Webrat
Integration Test With Cucumber And WebratIntegration Test With Cucumber And Webrat
Integration Test With Cucumber And WebratKang-min Liu
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In PerlKang-min Liu
 
Javascript Tutorial
Javascript TutorialJavascript Tutorial
Javascript TutorialKang-min Liu
 
Handlino - RandomLife
Handlino - RandomLifeHandlino - RandomLife
Handlino - RandomLifeKang-min Liu
 
網頁程式還可以怎麼設計
網頁程式還可以怎麼設計網頁程式還可以怎麼設計
網頁程式還可以怎麼設計Kang-min Liu
 
OSDC.tw 2008 Lightening Talk
OSDC.tw 2008 Lightening TalkOSDC.tw 2008 Lightening Talk
OSDC.tw 2008 Lightening TalkKang-min Liu
 
Happy Designer 20080329
Happy Designer 20080329Happy Designer 20080329
Happy Designer 20080329Kang-min Liu
 

Mais de Kang-min Liu (14)

o̍h Tai-gi
o̍h Tai-gio̍h Tai-gi
o̍h Tai-gi
 
The architecture of search engines in Booking.com
The architecture of search engines in Booking.comThe architecture of search engines in Booking.com
The architecture of search engines in Booking.com
 
Elasticsearch 實戰介紹
Elasticsearch 實戰介紹Elasticsearch 實戰介紹
Elasticsearch 實戰介紹
 
Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)Good Evils In Perl (Yapc Asia)
Good Evils In Perl (Yapc Asia)
 
Integration Test With Cucumber And Webrat
Integration Test With Cucumber And WebratIntegration Test With Cucumber And Webrat
Integration Test With Cucumber And Webrat
 
Good Evils In Perl
Good Evils In PerlGood Evils In Perl
Good Evils In Perl
 
Javascript Tutorial
Javascript TutorialJavascript Tutorial
Javascript Tutorial
 
Javascript Basic
Javascript BasicJavascript Basic
Javascript Basic
 
Handlino - RandomLife
Handlino - RandomLifeHandlino - RandomLife
Handlino - RandomLife
 
Jformino
JforminoJformino
Jformino
 
Test Continuous
Test ContinuousTest Continuous
Test Continuous
 
網頁程式還可以怎麼設計
網頁程式還可以怎麼設計網頁程式還可以怎麼設計
網頁程式還可以怎麼設計
 
OSDC.tw 2008 Lightening Talk
OSDC.tw 2008 Lightening TalkOSDC.tw 2008 Lightening Talk
OSDC.tw 2008 Lightening Talk
 
Happy Designer 20080329
Happy Designer 20080329Happy Designer 20080329
Happy Designer 20080329
 

Último

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 

Último (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 

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. “commit” 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. workflow 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/