SlideShare a Scribd company logo
Git and GitHub
Lifting ourselves out of SVN




         Sebastiaan Deckers
          November 2011
What's wrong with SVN?
      Git is just better.
http:// Why Git Is Better Than X .com/
Features                Workflow
● Cheap Local           ● Subversion-Style
  Branching               Workflow
● Everything is Local   ● Integration
● Git is Fast             Manager Workflow
● Git is Small          ● Dictator and
● The Staging Area        Lieutenants
● Distributed             Workflow
● GitHub
● Easy to Learn
Git clients?
  Windows: TortoiseGit
Mac: Github.app, Tower ($59)
Workflow
Add source code files so that Git tracks them
           in the local repository.
Commit your changed files to the local repo.
  Push to upload your commits to GitHub.
     Pull to get commits from GitHub.
Command Line
commit
  add                            push

         pull            fetch
                                 etc...

    git help <command>
Your friendly neighbourhood documentation.
svn checkout <url> <dir> git clone <url> <dir>

              ... but wait, it's better!

             Full revision history
           No single point of failure
             Fast transfer speed
svn update       git pull <remote> <branch>

         ... but wait, it's better!

             Merge branches
Each developer has their own remote
Hack together without affecting others
svn add                    git add --all

            ... but wait, it's better!

 Just kidding. It's pretty much the same.
But add also used to mark merge conflicts
               as resolved.
svn commit      git push <remote> <branch>

          ... but wait, it's better!

As with pull, you can push to anywhere.
What is this I don't even...
remote
          ≈ SVN repository URL
 A remote is a bookmark of another Git
                repository.
   It represents a Git repo by its URL.
  The default remote is called "origin".
The origin remote has no special meaning
         and is merely convention.
refspec
            ≈ SVN branch name
A refspec is the name of a branch or tag, or
     the SHA-1 of a particular commit.
   The default refspec is called "master".
The master refspec has no special meaning
         and is merely convention.
commit
         ≈ SVN revision/commit
Changes to files are identified by a SHA-1
                   hash.
Can usually be referenced by the first few
                characters.
 Allows Git to do fast comparisions, error
       checking, compact storage.
Commit Log
git log

commit 4f94c3059851fedce2d92f19af98d67ec8c2be69
Author: Thomas Gorissen <thomas@adzcentral.com>
Date:   Wed Nov 2 09:23:41 2011 +0000

Changed date interpretation to adapt server change

git-svn-id: https://subversion.assembla.com/svn/adz/uinew@4672
3c9e7dd8-c376-4c09-bcd8-96044d63829d
git log --oneline

4f94c30   Changed date interpretation to adapt server change
501753c   Fixing creative click tracking test
cce1c63   Changing maximum bid to bid-price
23aad1c   Override the aggregated status with only the primary status.
4b2f730   Increased version number to 1.5.5
84aed45   Show the filter ID when a name is missing
5ae3f2f   not overriding backup picture with old one on upload
38af93b   removing now unnecessary code to reference backupID
7dac9c0   Redirecting user to #Home if he doesn't accept terms
02afc23   Added ISO date parsing
b30d440   Changed sessionTimeout to be understood as seconds
a57adf0   Not querying for rejected creatives on select popup in CI
bc4c93a   Recursively apply the active selection on search results
7ad1401   Highlighting error fields on credit limit change
git log --grep=refactoring

3b9c48e Preparations for Tree control refactoring
d3f32f9 Code cleanup/ refactoring
b7d58d0 Minor code refactoring
83a2235 Minor refactoring for improved trickery
ba83e28 Massive refactoring of the filters control. Now supports
disabling entire menu sections on-the-fly.
98e9232 Lots of refactoring to show Pending Approvals as a widget
anywhere
git log --author=seb

23aad1c Override the aggregated status with only the primary status.
6a9f696 Fixed showing the platform support dagger symbol on search
results
84aed45 Show the filter ID when a name is missing
78a9948 Asynchronous rendering with a loading indicator for audience
template loading/saving
bc4c93a Recursively apply the active selection on search results
edb35be Fixed recursive selection to activate all parents
cbe9542 Removed dead code :)
Branching
git branch


List, create, or delete branches
Warning: Does not switch branch! #wtfgit
git checkout [-b] <branchname>

Creates a new branch and switches to it.
git merge <branchname>

Merges branchname into the current
branch.
Branching Example
          http://book.git-scm.
com/3_basic_branching_and_merging.html
GitHub
Commit History
  Who's doing what
Pull Requests
Code review and collaboration
Crazy Stats
Questions?
                      RTFM
            http://book.git-scm.com/
http://help.github.com/

More Related Content

What's hot

Git - a powerful version control tool
Git - a powerful version control toolGit - a powerful version control tool
Git - a powerful version control tool
Kuo-Le Mei
 
Introduction git
Introduction gitIntroduction git
Introduction git
Dian Sigit Prastowo
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
KMS Technology
 
Brief tutorial on Git
Brief tutorial on GitBrief tutorial on Git
Brief tutorial on Git
聖文 鄭
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
E Carter
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
Sage Sharp
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
Majid Hosseini
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Git & GitHub for Beginners
Git & GitHub for BeginnersGit & GitHub for Beginners
Git & GitHub for Beginners
Sébastien Saunier
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
Otto Kekäläinen
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial I
Jim Yeh
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
Thomas Rausch
 
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
Otto Kekäläinen
 
Recovering From Git Mistakes - Nina Zakharenko
Recovering From Git Mistakes - Nina ZakharenkoRecovering From Git Mistakes - Nina Zakharenko
Recovering From Git Mistakes - Nina Zakharenko
Nina Zakharenko
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
Naim Latifi
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
Pham Quy (Jack)
 
Git basic
Git basicGit basic
Git basic
Emran Ul Hadi
 
Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use It
Daniel Kummer
 

What's hot (20)

Git - a powerful version control tool
Git - a powerful version control toolGit - a powerful version control tool
Git - a powerful version control tool
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Git Version Control System
Git Version Control SystemGit Version Control System
Git Version Control System
 
Brief tutorial on Git
Brief tutorial on GitBrief tutorial on Git
Brief tutorial on Git
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Git and git workflow best practice
Git and git workflow best practiceGit and git workflow best practice
Git and git workflow best practice
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Git & GitHub for Beginners
Git & GitHub for BeginnersGit & GitHub for Beginners
Git & GitHub for Beginners
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial I
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 
Git and Github
Git and GithubGit and Github
Git and Github
 
Git and Github workshop
Git and Github workshopGit and Github workshop
Git and Github workshop
 
Recovering From Git Mistakes - Nina Zakharenko
Recovering From Git Mistakes - Nina ZakharenkoRecovering From Git Mistakes - Nina Zakharenko
Recovering From Git Mistakes - Nina Zakharenko
 
GIT presentation
GIT presentationGIT presentation
GIT presentation
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
Git basic
Git basicGit basic
Git basic
 
Git - Get Ready To Use It
Git - Get Ready To Use ItGit - Get Ready To Use It
Git - Get Ready To Use It
 
Introduction To Git
Introduction To GitIntroduction To Git
Introduction To Git
 

Similar to Git and git hub

Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
Alberto Leal
 
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
Boise Web Technologies Group
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
Manish Chakravarty
 
Git Tech Talk
Git  Tech TalkGit  Tech Talk
Git Tech Talk
Chris Johnson
 
GIT Basics
GIT BasicsGIT Basics
GIT Basics
Tagged Social
 
Using Git as your VCS with Bioconductor
Using Git as your VCS with BioconductorUsing Git as your VCS with Bioconductor
Using Git as your VCS with Bioconductortimyates
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践Terry Wang
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践Terry Wang
 
Session git
Session gitSession git
Session git
Roni Saha
 
Git foundation
Git foundationGit foundation
Git foundation
Wee Keat Chin
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
Chen-Tien Tsai
 
Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?
9 series
 
Git from the trenches
Git from the trenchesGit from the trenches
Git from the trenches
Nuno Caneco
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCS
Matthew McCullough
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCS
Matthew McCullough
 
Lets Git Together
Lets Git TogetherLets Git Together
Lets Git Together
Rakesh Jha
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
Wim Godden
 

Similar to Git and git hub (20)

Git
GitGit
Git
 
Wokshop de Git
Wokshop de Git Wokshop de Git
Wokshop de Git
 
M.Mozūras - git
M.Mozūras - gitM.Mozūras - git
M.Mozūras - git
 
Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)Introduction to Git (Greg Lonnon)
Introduction to Git (Greg Lonnon)
 
Subversion to Git Migration
Subversion to Git MigrationSubversion to Git Migration
Subversion to Git Migration
 
Git Tech Talk
Git  Tech TalkGit  Tech Talk
Git Tech Talk
 
GIT Basics
GIT BasicsGIT Basics
GIT Basics
 
Using Git as your VCS with Bioconductor
Using Git as your VCS with BioconductorUsing Git as your VCS with Bioconductor
Using Git as your VCS with Bioconductor
 
Git
GitGit
Git
 
Git 入门与实践
Git 入门与实践Git 入门与实践
Git 入门与实践
 
Git 入门 与 实践
Git 入门 与 实践Git 入门 与 实践
Git 入门 与 实践
 
Session git
Session gitSession git
Session git
 
Git foundation
Git foundationGit foundation
Git foundation
 
Git essential training & sharing self
Git essential training & sharing selfGit essential training & sharing self
Git essential training & sharing self
 
Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?Git Commands Every Developer Should Know?
Git Commands Every Developer Should Know?
 
Git from the trenches
Git from the trenchesGit from the trenches
Git from the trenches
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCS
 
Git - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCSGit - Intro to the Basics of DVCS
Git - Intro to the Basics of DVCS
 
Lets Git Together
Lets Git TogetherLets Git Together
Lets Git Together
 
Practical git for developers
Practical git for developersPractical git for developers
Practical git for developers
 

Recently uploaded

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

Git and git hub

  • 1. Git and GitHub Lifting ourselves out of SVN Sebastiaan Deckers November 2011
  • 2. What's wrong with SVN? Git is just better.
  • 3. http:// Why Git Is Better Than X .com/ Features Workflow ● Cheap Local ● Subversion-Style Branching Workflow ● Everything is Local ● Integration ● Git is Fast Manager Workflow ● Git is Small ● Dictator and ● The Staging Area Lieutenants ● Distributed Workflow ● GitHub ● Easy to Learn
  • 4. Git clients? Windows: TortoiseGit Mac: Github.app, Tower ($59)
  • 5. Workflow Add source code files so that Git tracks them in the local repository. Commit your changed files to the local repo. Push to upload your commits to GitHub. Pull to get commits from GitHub.
  • 7. commit add push pull fetch etc... git help <command> Your friendly neighbourhood documentation.
  • 8. svn checkout <url> <dir> git clone <url> <dir> ... but wait, it's better! Full revision history No single point of failure Fast transfer speed
  • 9. svn update git pull <remote> <branch> ... but wait, it's better! Merge branches Each developer has their own remote Hack together without affecting others
  • 10. svn add git add --all ... but wait, it's better! Just kidding. It's pretty much the same. But add also used to mark merge conflicts as resolved.
  • 11. svn commit git push <remote> <branch> ... but wait, it's better! As with pull, you can push to anywhere.
  • 12. What is this I don't even...
  • 13. remote ≈ SVN repository URL A remote is a bookmark of another Git repository. It represents a Git repo by its URL. The default remote is called "origin". The origin remote has no special meaning and is merely convention.
  • 14. refspec ≈ SVN branch name A refspec is the name of a branch or tag, or the SHA-1 of a particular commit. The default refspec is called "master". The master refspec has no special meaning and is merely convention.
  • 15. commit ≈ SVN revision/commit Changes to files are identified by a SHA-1 hash. Can usually be referenced by the first few characters. Allows Git to do fast comparisions, error checking, compact storage.
  • 17. git log commit 4f94c3059851fedce2d92f19af98d67ec8c2be69 Author: Thomas Gorissen <thomas@adzcentral.com> Date: Wed Nov 2 09:23:41 2011 +0000 Changed date interpretation to adapt server change git-svn-id: https://subversion.assembla.com/svn/adz/uinew@4672 3c9e7dd8-c376-4c09-bcd8-96044d63829d
  • 18. git log --oneline 4f94c30 Changed date interpretation to adapt server change 501753c Fixing creative click tracking test cce1c63 Changing maximum bid to bid-price 23aad1c Override the aggregated status with only the primary status. 4b2f730 Increased version number to 1.5.5 84aed45 Show the filter ID when a name is missing 5ae3f2f not overriding backup picture with old one on upload 38af93b removing now unnecessary code to reference backupID 7dac9c0 Redirecting user to #Home if he doesn't accept terms 02afc23 Added ISO date parsing b30d440 Changed sessionTimeout to be understood as seconds a57adf0 Not querying for rejected creatives on select popup in CI bc4c93a Recursively apply the active selection on search results 7ad1401 Highlighting error fields on credit limit change
  • 19. git log --grep=refactoring 3b9c48e Preparations for Tree control refactoring d3f32f9 Code cleanup/ refactoring b7d58d0 Minor code refactoring 83a2235 Minor refactoring for improved trickery ba83e28 Massive refactoring of the filters control. Now supports disabling entire menu sections on-the-fly. 98e9232 Lots of refactoring to show Pending Approvals as a widget anywhere
  • 20. git log --author=seb 23aad1c Override the aggregated status with only the primary status. 6a9f696 Fixed showing the platform support dagger symbol on search results 84aed45 Show the filter ID when a name is missing 78a9948 Asynchronous rendering with a loading indicator for audience template loading/saving bc4c93a Recursively apply the active selection on search results edb35be Fixed recursive selection to activate all parents cbe9542 Removed dead code :)
  • 22. git branch List, create, or delete branches Warning: Does not switch branch! #wtfgit
  • 23. git checkout [-b] <branchname> Creates a new branch and switches to it.
  • 24. git merge <branchname> Merges branchname into the current branch.
  • 25. Branching Example http://book.git-scm. com/3_basic_branching_and_merging.html
  • 27. Commit History Who's doing what
  • 28.
  • 29. Pull Requests Code review and collaboration
  • 30.
  • 32.
  • 33. Questions? RTFM http://book.git-scm.com/ http://help.github.com/