SlideShare a Scribd company logo
1 of 111
Git Magic:
Versioning Files
  Like a Boss
  Tommy MacWilliam
   tmacwilliam@cs50.net
Today

• setting up like a boss
• basic git like a boss
• using branches like a boss
• reverting changes like a boss
• collaborating like a boss
Git is...
• “Git is distributed version control system
  focused on speed, effectivity and real-world
  usability on large projects”
  •   “distributed development”
  •   “non-linear development”
  •   “efficient handling of large projects”
  •   “cryptographic authentication of history”
Git is...
Git is...


Awesome.
Installing Git

• Windows: http://code.google.com/p/
  msysgit/
• OS X: http://code.google.com/p/git-osx-
  installer/
• Appliance: already installed!
Installing Git

root@appliance(~): git
usage: git [--version] [--exec-path[=<path>]] [--html-path]
       [-p|--paginate|--no-pager] [--no-replace-objects]
       [--bare] [--git-dir=<path>] [--work-tree=<path>]
       [-c name=value] [--help]
       <command> [<args>]
git config --global
user.name
“Tommy MacWilliam”
git config --global
user.email
tmacwilliam@cs50.net
git init
Commits

• snapshots of your project
• what your files look like at a given point
• single event in project history
git status
git add index.php
git add --all
git add --all
git add --all
git commit
Commit Messages

• short message describing what’s different in
  this commit
• add any new features?
• fix some bugs?
• break anything?
Commit Messages
Commit Messages


• http://www.commitlogsfromlastnight.com/
git commit -a -m
  “oh hi, mark!”
git log
5aeebab117b892fa42002146e4c62be676bc4621




b43b0ad1e8108e7ab870d7a54feac93ae8b8600e




461476587780aa9fa5611ea6dc3912c146a91760
Commit   5aeebab117b892fa42002146e4c62be676bc4621
  ID


         b43b0ad1e8108e7ab870d7a54feac93ae8b8600e




         461476587780aa9fa5611ea6dc3912c146a91760




HEAD
git show
git show b43b0
git init
git status
 git add



git commit
   git log
 git show
git init
git status
 git add



git commit
   git log
 git show
Branches
• non-linear development process
 • changes on one branch do not affect
    other branches
• crazy idea? make a branch
• didn’t work? delete the branch
• all done? merge the branch
git branch test
git branch test
git branch test
git checkout test
5aeeb




 b43b0




 46147




master
5aeeb
         git branch test



 b43b0      f862f




 46147      36223




master      test
git merge
5aeeb




 b43b0    f862f




 46147    36223




         git merge
 87aed


master    test
Like a boss.
git branch -D test
Merge vs. Rebase


• git merge: new commit, non-linear history
• git rebase: no new commit, linear history
5aeeb
         git branch test



 b43b0      f862f




 46147      36223




master      test
5aeeb




 b43b0



         git rebase

 46147                f862f   36223




master
Conflicts


• change in one branch can be incompatible
  with another
• git tries to resolve, but sometimes cannot
Conflict Resolution
int main(int argc, char** argv) {
   printf(“you invited all my friends”);
}

int main(int argc, char** argv) {
   printf(“good thinking!”);
}
Conflict Resolution

int main(int argc, char** argv) {
   <<<<<<< HEAD:file.c
   printf(“you invited all my friends”);
   =======
   printf(“good thinking!”);
   >>>>>>> f862f:file.c
}
git checkout
 git branch




 git merge
 git rebase
git checkout
 git branch




 git merge
 git rebase
git commit -m “oops.”
git revert b43b0
5aeeb




b43b0




46147
5aeeb




b43b0




46147



          git revert b43b0
 42bb4
(b43b0)
File-Specific Reverts

• git checkout -- index.php
 • replace with version in index
• git checkout b43b0 index.php
 • replace with version in commit b43b0
git reset --hard b43b0
git reflog
git bisect
Like a boss.
git revert
  git reset




git checkout
  git bisect
git revert
  git reset




git checkout
  git bisect
“distributed development”
ssh-keygen
git push
git@github.com:cs50/project
        master
git remote add origin
git@github.com:cs50/project
git remote add origin
git@github.com:cs50/project
git push origin master
git clone
git@github.com:cs50/project
git pull origin master
git pull --rebase
git init
git add --all
git commit

  Alice         Bob
git remote add origin url
git push origin master

 Alice                      Bob
git remote add origin url
git push origin master

 Alice                      Bob
git clone url

Alice          Bob
git clone url

Alice          Bob
git add --all
        git commit

Alice          Bob
git push origin master

Alice                 Bob
git push origin master

Alice                 Bob
git pull origin master

Alice                    Bob
git pull origin master

Alice                    Bob
git branch -a
git checkout -b
   origin/test
scp ~/.ssh/id_rsa.pub
host:~/.ssh/authorized_keys
git init --bare
git remote add live
user@cloud.cs50.net:~/project
git remote add live
user@cloud.cs50.net:~/project
  git push live master
Hooks
•   applypatch-msg      •   post-applypatch

•   commit-msg          •   pre-commit

•   post-commit         •   pre-commit-msg

•   post-receive        •   pre-rebase

•   post-update         •   update
post-receive
#!/bin/sh
GIT_WORK_TREE=/home/tmacwill/public_html 
git checkout -f
chmod -R 644 /home/tmacwill/public_html/
*.html
chmod -R 600 /home/tmacwill/public_html/
*.php
Like a boss.
git clone
git push




git remote
  git pull
git clone
git push




git remote
  git pull
More Resources

• http://progit.org/book/
• http://book.git-scm.com/
• http://gitref.org/
• http://git-scm.com/documentation
git commit -a -m
     “thanks!”

More Related Content

What's hot

Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use ItDaniel Kummer
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hubVenkat Malladi
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHubNicolás Tourné
 
Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginningJames Aylett
 
Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Ariejan de Vroom
 
Git Obstacle Course: Stop BASHing your head and break down the basics
Git Obstacle Course: Stop BASHing your head and break down the basicsGit Obstacle Course: Stop BASHing your head and break down the basics
Git Obstacle Course: Stop BASHing your head and break down the basicsChris Bohatka
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e MergingRodrigo Branas
 
Git Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential CommandsGit Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential CommandsJeremy Lindblom
 
GIT presentation
GIT presentationGIT presentation
GIT presentationNaim Latifi
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsLee Hanxue
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionAnwarul Islam
 

What's hot (20)

Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use It
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git training v10
Git training v10Git training v10
Git training v10
 
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
 
Git, from the beginning
Git, from the beginningGit, from the beginning
Git, from the beginning
 
Git Basics - RubyFest 2009
Git Basics - RubyFest 2009Git Basics - RubyFest 2009
Git Basics - RubyFest 2009
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git advanced
Git advancedGit advanced
Git advanced
 
Git Obstacle Course: Stop BASHing your head and break down the basics
Git Obstacle Course: Stop BASHing your head and break down the basicsGit Obstacle Course: Stop BASHing your head and break down the basics
Git Obstacle Course: Stop BASHing your head and break down the basics
 
Git internals
Git internalsGit internals
Git internals
 
#3 - Git - Branching e Merging
#3 - Git - Branching e Merging#3 - Git - Branching e Merging
#3 - Git - Branching e Merging
 
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
 
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
 
Git Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential CommandsGit Educated About Git - 20 Essential Commands
Git Educated About Git - 20 Essential Commands
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
 
Advanced Git
Advanced GitAdvanced Git
Advanced Git
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Introduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training SessionIntroduction to Gitlab | Gitlab 101 | Training Session
Introduction to Gitlab | Gitlab 101 | Training Session
 
Git
GitGit
Git
 

Viewers also liked

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
 
Community live #1 - Gitflow Workflow
Community live #1 - Gitflow WorkflowCommunity live #1 - Gitflow Workflow
Community live #1 - Gitflow WorkflowLiora Milbaum
 
Puppet at GitHub - PuppetConf 2013
Puppet at GitHub - PuppetConf 2013Puppet at GitHub - PuppetConf 2013
Puppet at GitHub - PuppetConf 2013Puppet
 
Git like a Pro (How to use it as it was meant to)
Git like a Pro (How to use it as it was meant to)Git like a Pro (How to use it as it was meant to)
Git like a Pro (How to use it as it was meant to)Dennis Doomen
 
SemVer, the whole story
SemVer, the whole storySemVer, the whole story
SemVer, the whole storyJakeGinnivan
 
Semantic Versioning Lightning Talk
Semantic Versioning Lightning TalkSemantic Versioning Lightning Talk
Semantic Versioning Lightning TalkAaron Blythe
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requestsBartosz Kosarzycki
 

Viewers also liked (8)

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
 
Community live #1 - Gitflow Workflow
Community live #1 - Gitflow WorkflowCommunity live #1 - Gitflow Workflow
Community live #1 - Gitflow Workflow
 
Puppet at GitHub - PuppetConf 2013
Puppet at GitHub - PuppetConf 2013Puppet at GitHub - PuppetConf 2013
Puppet at GitHub - PuppetConf 2013
 
Git like a Pro (How to use it as it was meant to)
Git like a Pro (How to use it as it was meant to)Git like a Pro (How to use it as it was meant to)
Git like a Pro (How to use it as it was meant to)
 
SemVer, the whole story
SemVer, the whole storySemVer, the whole story
SemVer, the whole story
 
Pubmi gitflow
Pubmi gitflowPubmi gitflow
Pubmi gitflow
 
Semantic Versioning Lightning Talk
Semantic Versioning Lightning TalkSemantic Versioning Lightning Talk
Semantic Versioning Lightning Talk
 
Git-flow workflow and pull-requests
Git-flow workflow and pull-requestsGit-flow workflow and pull-requests
Git-flow workflow and pull-requests
 

Similar to Git Magic: Versioning Files like a Boss

Git Started With Git
Git Started With GitGit Started With Git
Git Started With GitNick Quaranto
 
Git Distributed Version Control System
Git   Distributed Version Control SystemGit   Distributed Version Control System
Git Distributed Version Control SystemVictor Wong
 
Introducción a git y GitHub
Introducción a git y GitHubIntroducción a git y GitHub
Introducción a git y GitHubLucas Videla
 
#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
 
SCM for Android Developers Using Git
SCM for Android Developers Using GitSCM for Android Developers Using Git
SCM for Android Developers Using GitTony Hillerson
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android DeveloperEffectiveUI
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshopthemystic_ca
 
Git session Dropsolid.com
Git session Dropsolid.comGit session Dropsolid.com
Git session Dropsolid.comdropsolid
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopAll Things Open
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developersmpvanwinkle
 

Similar to Git Magic: Versioning Files like a Boss (20)

Git Started With Git
Git Started With GitGit Started With Git
Git Started With Git
 
Git Distributed Version Control System
Git   Distributed Version Control SystemGit   Distributed Version Control System
Git Distributed Version Control System
 
Git Basics Philips
Git Basics PhilipsGit Basics Philips
Git Basics Philips
 
Loading...git
Loading...gitLoading...git
Loading...git
 
Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
 
Introducción a git y GitHub
Introducción a git y GitHubIntroducción a git y GitHub
Introducción a git y GitHub
 
#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
 
SCM for Android Developers Using Git
SCM for Android Developers Using GitSCM for Android Developers Using Git
SCM for Android Developers Using Git
 
Git for the Android Developer
Git for the Android DeveloperGit for the Android Developer
Git for the Android Developer
 
Git Tech Talk
Git  Tech TalkGit  Tech Talk
Git Tech Talk
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
 
Working with Git
Working with GitWorking with Git
Working with Git
 
Git 基础
Git 基础Git 基础
Git 基础
 
simple Git
simple Git simple Git
simple Git
 
Git session Dropsolid.com
Git session Dropsolid.comGit session Dropsolid.com
Git session Dropsolid.com
 
Version Control and Git - GitHub Workshop
Version Control and Git - GitHub WorkshopVersion Control and Git - GitHub Workshop
Version Control and Git - GitHub Workshop
 
.Git for WordPress Developers
.Git for WordPress Developers.Git for WordPress Developers
.Git for WordPress Developers
 
Basic git
Basic gitBasic git
Basic git
 
Git basics
Git basicsGit basics
Git basics
 

Recently uploaded

AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)lakshayb543
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptxmary850239
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parentsnavabharathschool99
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 

Recently uploaded (20)

AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
Visit to a blind student's school🧑‍🦯🧑‍🦯(community medicine)
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx4.16.24 Poverty and Precarity--Desmond.pptx
4.16.24 Poverty and Precarity--Desmond.pptx
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Choosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for ParentsChoosing the Right CBSE School A Comprehensive Guide for Parents
Choosing the Right CBSE School A Comprehensive Guide for Parents
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 

Git Magic: Versioning Files like a Boss

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. mkdir repo\nvim index.php: &lt;?php echo &amp;#x2018;git rocks&amp;#x2019;; ?&gt;\nvim page.php: &lt;?php echo &amp;#x2018;tommy does, too&amp;#x2019;; ?&gt;\ngit init\n
  10. \n
  11. git status\n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. git add --all\ngit commit\n
  20. \n
  21. \n
  22. vim page2.php: &lt;?php echo &amp;#x2018;woo more commits&amp;#x2019;; ?&gt;\nvim index.php: &lt;?php echo &amp;#x2018;I made a change!&amp;#x2019;; ?&gt;\ngit add --all\ngit commit -m &amp;#x201C;another commit&amp;#x201D;\ngit log\n
  23. \n
  24. git show\ngit show PREVIOUS COMMIT\n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. git branch test\ngit branch\ngit checkout test\ngit branch\nvim crazy.php: &lt;?php echo &amp;#x2018;this is a crazy idea&amp;#x2019;; ?&gt;\ngit add --all\ngit commit -m &amp;#x201C;so crazy up in here&amp;#x201D;\nls\ngit log\ngit checkout master\nls\ngit log\n
  31. \n
  32. \n
  33. git branch\ngit checkout master\nvim index.php: &lt;?php echo &amp;#x2018;this page is boring&amp;#x2019;; ?&gt;\ngit add --all\ngit commit -m &amp;#x201C;third commit on master&amp;#x201D;\ngit merge test\ngit log\n
  34. git branch -D test\ngit branch\n
  35. \n
  36. \n
  37. git log --graph\ncd ../rebased\ngit checkout master\ngit rebase test\ngit log --graph\ncd ../repo\n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. ls\ngit log\nvim index.php: &lt;?php echo &amp;#x2018;good idea&amp;#x2019;; ?&gt;\ngit commit -a -m &amp;#x201C;sweet&amp;#x201D;\nvim index.php: &lt;?php echo &amp;#x2018;bad idea&amp;#x2019;; ?&gt;\ngit commit -a -m &amp;#x201C;oops&amp;#x201D;\ngit revert to commit &amp;#x201C;sweet&amp;#x201D;\nCONFLICT!\ngit status\nvim index.php\ngit commit -a -m &amp;#x201C;revert&amp;#x201D;\ngit log\n
  46. vim index.php: &lt;?php echo &amp;#x2018;only gonna add this&amp;#x2019;; ?&gt;\ngit add --all\ngit checkout -- index.php\nvim index.php\ngit checkout &lt;commit with &amp;#x201C;sweet&amp;#x201D;&gt; index.php\nvim index.php\n
  47. git reset --hard HEAD\n
  48. git checkout &lt;commit with &amp;#x201C;another commit&amp;#x201D;&gt;\ngit log\ngit reflog\ngit checkout master\n
  49. git bisect good &lt;first commit&gt;\ngit bisect bad HEAD\ngit bisect bad\ngit checkout master\n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. git remote add origin git@github.com:tmac721/seminar.git\ngit remote\ngit remote show origin\ngit push origin master\n
  58. cd ../\ngit clone git@github.com:tmac721/seminar.git\ncd test\nls\ngit log\n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. ssh cloud\nmkdir repo\ncd repo\ngit init --bare\ncd hooks\nvim post-receive: copy this\nchmod a+x post-receive\ngit remote add origin ssh://tmacwill@cloud.cs50.net/home/tmacwill/repo\ngit push origin master\n\n
  79. \n
  80. \n
  81. \n
  82. \n