SlideShare a Scribd company logo
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
HPLiveNetworkMeetGit
Liran Tal
2013
Goodbye merge hell, conflicts, and awfully slow svn operations
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Motivation
“Already know you that which you need” - Yoda
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3
Motivation
Decentralized
• Faster, really.
• Complete repository clone.
• Developers can work “offline”, committing all their work locally and pushing to a ‘primary’ repository later.
• Redundant and enterprise-ready, if required.
Lightweight Branches
• Cheap and quick
• Used often, and merged often.
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4
Motivation
Drives for better development methodology
• Gitflow – A successful git branching model
• Code reviews
Extra curriculum points for reading 
− http://nvie.com/posts/a-successful-git-branching-model
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Roadmap
“Always in motion, the future is” - Yoda
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6
Roadmap
Plans for implementing Git in HP Live Network.
Using Git,
better, all of us
• Gradually
migrating the
rest of the R&D
teams to Git
Using Git,
better
• Working with
Gitflow
development
methodology
Using Git
• Preliminary
evaluation of Git
• Understanding
Git – knowledge
gap
• Migrating
backend SVN
repository to Git
• Using Git in a
single team (3
developers) as
case study
Git kick-off
• Motivation for
Git
• Roadmap
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
GitOverview
“Try not. Do or do not, there is no try” - Yoda
(heavily based on Git Pro book, @see git-scm.com/book)
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8
Git Overview
CVCS
SVN operations mostly need to consult a remote
server repository
DVCS
Git operations mostly run on the local
repository (and later pushed to a remote
server)
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9
Git Overview
Changes
SVN-like data model
Gnapshots
Git maintains a snapshot of the data
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10
Git Overview
The Three States
• Modified
• Staged (the staging area is also known as the index)
• Committed
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11
Git Overview
Git For Work
• IntelliJ
− In our experience Eclipse with EGIT support is awful
• PHPStorm – bundled with Git integration
• Command line Git, my preferred option
Other Git Tools
• TortoiseGit
• Gitk
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
GitBasics
“Try not. Do or do not, there is no try” - Yoda
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13
Initializing a git repository
Git Basics
Starting fresh
• git init
Working from an existing repository
• git clone <repository-url>
− we know this as ‘svn checkout <repository-url>’
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14
Adding work
Git Basics
Commiting your work
• git add <file>
− git add -p <file>
− git add -I <file>
• git status
• git commit [file] -m <commit-message>
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15
Common commands
Git Basics
Commiting your work
• git status
• git branch
• git diff
− --staged – see changes between staged to last commit
• git rm
• git mv
• .gitignore
• git log
− -p – view diff
− --stat – view a summary of commit file stats
− --pretty=oneline --pretty=full or --pretty=format:”%h - %an, %ar : %s”
− --graph
− --since=2.weeks
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.16
Undoing
Git Basics
Undoing changes
• git commit –amend
− Commits the staging area again instead of the previous commit
• git reset HEAD <file>
− Unstage a previously staged file
• git checkout -- <file>
− Revert local changes to that file
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.17
Remotes
Git Basics
Working with Remotes
• git remote -v
− Lists remotes configured for this repository
• git remote add <shortname> <url>
− Adding a remote
• git fetch <remote> <branch>
− Fetch the changes from the remote repository (not yet merging them)
• git pull <remote> <branch>
− Fetch and merge changes from the remote repository to the local branch
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18
Remotes
Git Basics
Working with Remotes
• git push <remote> <branch>
− Push your changes to the remote repository
− Pushing is only successful if your local copy is up to date with the remote
• git remote show <remote>
− Inspecting the remote for information
• git remote rename <remote> <new-remote>
− Renaming a remote
• git remote rm <remote>
− Removing a remote
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19
Tagging
Git Basics
Lightweight and Annotated Tags
• git tag -a v2.0 -m “portal release 2.0” [hash]
− Annotated tags (notice the -a flag) are saved as full Git objects meaning they contain author information,
email, checksum, etc.
• git tag v2.0
− Lightweight tags are just pointers to a commit (don’t provide -a, -m or -s)
• git push <remote> --tags
− Pushing our tags to the remote repository as they don’t get pushed with a plain ‘git push’
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
GitBranches
“Try not. Do or do not, there is no try” - Yoda
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21
Git Branches
Overview
• Diverge from the main line of development and continue to do work without messing with that main line
• Expensive process, often requiring you to create a new copy of your source code directory
Git killer branching
• Incredibly lightweight and prompt
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22
Git Branches
Overview
• Stream-line a development methodology
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23
Git Branches
Starting off
• Starting on a fresh ‘master’ branch with 3 files:
− README
− License
− test.rb
• After performing git add && git commit, an example visual
representation is as such:
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24
Git Branches
Starting off
• With each commit in time a new commit object is created and objects are pointing to parents (zero or more)
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.25
Git Branches
Starting off
• The ‘master’ branch is simply a pointer that moves forward with each commit you make
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26
Git Branches
Branching off
• Creating new branches means creating new pointers to a certain commit
• git branch testing
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.27
Git Branches
Branching off
• HEAD pointer is used to point to the local branch you’re working on now
• We’re still on ‘master’ cause we only created a new branch (testing) but didn’t yet
switch to it
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.28
Git Branches
Branching off
• HEAD pointer is used to point to the local branch you’re working on now
• We’re still on ‘master’ cause we only created a new branch (testing) but didn’t yet
switch to it
• git checkout testing
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.29
Git Branches
Branching off
• HEAD and testing branch pointers are both updated with each new commit
• git commit -a -m “new file”
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.30
Git Branches
Branching off
• Going back to our original ‘master’ branch:
− Updated the HEAD pointer
− Working directory looks different now, representing the state of the ‘master’ branch
• git checkout master
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.31
Git Branches
Diverged road
• Commiting work on the master branch again will diverge and enable us to work on 2 paths
• git commit -a -m “another commit”
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.32
Git Branches
Re-cap
• Branches are simply pointers
• Due to commits data structure it is easy enough to find proper merge base and that process is mostly done
automatic for us
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
WebPresenceforGit
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.34
Gitblit
Gitblit
• Open source Java project for hosting Git repositories
• Includes a web interface for managing and interacting with repositories (attempts to live up to the Github
promise)
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.35
Gitblit
Gitblit
• Open source Java project for hosting Git repositories
• Includes a web interface for managing and interacting with repositories (attempts to live up to the Github
promise)
• Includes a Java UI to manage users and their
certificates
• Feature-full, including repository federation
and other cool stuff
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.36
Gitblit
User Setup
• Configure your git:
− git config --global http.sslverify false
− git config --global http.sslkey /pathto/lirantal.key
− git config --global http.sslcert /pathto/lirantal.pem
− git config --global http.proxy ""
− git config --global user.name "Liran Tal"
− git config --global user.email "liran.tal@hp.com"
• You’re ready to clone:
git clone https://gitserver:8443/git/hpln.git

More Related Content

PPTX
Syncing with-upstream
Darragh Bailey
 
PDF
Introduction To Git For Version Control Architecture And Common Commands Comp...
SlideTeam
 
PPTX
Git hub ppt presentation
AyanaRukasar
 
PDF
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
PPTX
Code Hosting: The Key to Autonomous, Self-Service Development
Rachel Maxwell
 
PDF
Introduction to git
Randal Schwartz
 
PDF
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Roberto Pérez Alcolea
 
PDF
Introduction to Git and GitHub
Vikram SV
 
Syncing with-upstream
Darragh Bailey
 
Introduction To Git For Version Control Architecture And Common Commands Comp...
SlideTeam
 
Git hub ppt presentation
AyanaRukasar
 
August OpenNTF Webinar - Git and GitHub Explained
Howard Greenberg
 
Code Hosting: The Key to Autonomous, Self-Service Development
Rachel Maxwell
 
Introduction to git
Randal Schwartz
 
Leveraging Gradle @ Netflix (Madrid GUG Feb 2, 2021)
Roberto Pérez Alcolea
 
Introduction to Git and GitHub
Vikram SV
 

What's hot (20)

PDF
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
donaghmccabe
 
PPT
Introduction to Git
atishgoswami
 
PPTX
Working with Git
Sanghoon Hong
 
PPT
Introduction to git
Nguyen Van Hung
 
PDF
Migrating from Grails 2 to Grails 3
Michael Plöd
 
PDF
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
Howard Greenberg
 
PPTX
Getting Started with Apache Geode
John Blum
 
PDF
BYOP: Custom Processor Development with Apache NiFi
DataWorks Summit
 
KEY
What Big Data Folks Need to Know About DevOps
Matt Ray
 
PPT
Talk to git
YenTing Chen
 
PPTX
DevOps tools for winning agility
Kellyn Pot'Vin-Gorman
 
PPTX
Apache Geode (incubating) Introduction with Docker
William Markito Oliveira
 
PDF
Git Is A State Of Mind - The path to becoming a Master of the mystic art of Git
Nicola Costantino
 
PPTX
Advanced Git: Functionality and Features
Brent Laster
 
PDF
How to use Hadoop for operational and transactional purposes by RODRIGO MERI...
Big Data Spain
 
PDF
How to Open Source an Internal Project
All Things Open
 
PPTX
Adding ACID Transactions, Inserts, Updates, and Deletes in Apache Hive
DataWorks Summit
 
PDF
Oracle on kubernetes 101 - Dec/2021
Nelson Calero
 
PDF
The Evolution of Glance API: On the Way From v1 to v3
Brian Rosmaita
 
PDF
Git vs. Mercurial
Marian Marinov
 
Openstack Summit Vancouver 2015 - Maintaining and Operating Swift at Public C...
donaghmccabe
 
Introduction to Git
atishgoswami
 
Working with Git
Sanghoon Hong
 
Introduction to git
Nguyen Van Hung
 
Migrating from Grails 2 to Grails 3
Michael Plöd
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
Howard Greenberg
 
Getting Started with Apache Geode
John Blum
 
BYOP: Custom Processor Development with Apache NiFi
DataWorks Summit
 
What Big Data Folks Need to Know About DevOps
Matt Ray
 
Talk to git
YenTing Chen
 
DevOps tools for winning agility
Kellyn Pot'Vin-Gorman
 
Apache Geode (incubating) Introduction with Docker
William Markito Oliveira
 
Git Is A State Of Mind - The path to becoming a Master of the mystic art of Git
Nicola Costantino
 
Advanced Git: Functionality and Features
Brent Laster
 
How to use Hadoop for operational and transactional purposes by RODRIGO MERI...
Big Data Spain
 
How to Open Source an Internal Project
All Things Open
 
Adding ACID Transactions, Inserts, Updates, and Deletes in Apache Hive
DataWorks Summit
 
Oracle on kubernetes 101 - Dec/2021
Nelson Calero
 
The Evolution of Glance API: On the Way From v1 to v3
Brian Rosmaita
 
Git vs. Mercurial
Marian Marinov
 
Ad

Similar to HPLN Meet Git - Public (20)

PPTX
Git
Shinu Suresh
 
PPTX
Git One Day Training Notes
glen_a_smith
 
PDF
Introduction to git, an efficient distributed version control system
AlbanLevy
 
PDF
Git and GitHub workflows
Arthur Shvetsov
 
PPT
3 Git
Fabio Fumarola
 
PPT
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
PDF
Git of every day
Alan Descoins
 
PPTX
01 - Git vs SVN
Edward Goikhman
 
PPTX
Introduction to Git and GitHub
Bioinformatics and Computational Biosciences Branch
 
PPTX
Get going with_git_ppt
Miraz Al-Mamun
 
KEY
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
PDF
Git basics
Amit Sawhney
 
PDF
Git for developers
Hacen Dadda
 
PPT
Git
Vijay Kani
 
PPTX
Git Overview
Mallikarjuna G D
 
PPTX
Git - Version Control System
Namig Hajiyev
 
PPTX
Git and GitHub
태환 김
 
PDF
Git slides
Nanyak S
 
PPTX
Git and GitHub
Priya Nayak
 
PDF
Git Init (Introduction to Git)
GDSC UofT Mississauga
 
Git One Day Training Notes
glen_a_smith
 
Introduction to git, an efficient distributed version control system
AlbanLevy
 
Git and GitHub workflows
Arthur Shvetsov
 
Fundamentals and basics of Git and commands
DivyanshGupta922023
 
Git of every day
Alan Descoins
 
01 - Git vs SVN
Edward Goikhman
 
Get going with_git_ppt
Miraz Al-Mamun
 
Let's Git this Party Started: An Introduction to Git and GitHub
Kim Moir
 
Git basics
Amit Sawhney
 
Git for developers
Hacen Dadda
 
Git Overview
Mallikarjuna G D
 
Git - Version Control System
Namig Hajiyev
 
Git and GitHub
태환 김
 
Git slides
Nanyak S
 
Git and GitHub
Priya Nayak
 
Git Init (Introduction to Git)
GDSC UofT Mississauga
 
Ad

Recently uploaded (20)

PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
The Future of Artificial Intelligence (AI)
Mukul
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 

HPLN Meet Git - Public

  • 1. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. HPLiveNetworkMeetGit Liran Tal 2013 Goodbye merge hell, conflicts, and awfully slow svn operations
  • 2. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Motivation “Already know you that which you need” - Yoda
  • 3. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.3 Motivation Decentralized • Faster, really. • Complete repository clone. • Developers can work “offline”, committing all their work locally and pushing to a ‘primary’ repository later. • Redundant and enterprise-ready, if required. Lightweight Branches • Cheap and quick • Used often, and merged often.
  • 4. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.4 Motivation Drives for better development methodology • Gitflow – A successful git branching model • Code reviews Extra curriculum points for reading  − http://nvie.com/posts/a-successful-git-branching-model
  • 5. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Roadmap “Always in motion, the future is” - Yoda
  • 6. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.6 Roadmap Plans for implementing Git in HP Live Network. Using Git, better, all of us • Gradually migrating the rest of the R&D teams to Git Using Git, better • Working with Gitflow development methodology Using Git • Preliminary evaluation of Git • Understanding Git – knowledge gap • Migrating backend SVN repository to Git • Using Git in a single team (3 developers) as case study Git kick-off • Motivation for Git • Roadmap
  • 7. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. GitOverview “Try not. Do or do not, there is no try” - Yoda (heavily based on Git Pro book, @see git-scm.com/book)
  • 8. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.8 Git Overview CVCS SVN operations mostly need to consult a remote server repository DVCS Git operations mostly run on the local repository (and later pushed to a remote server)
  • 9. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.9 Git Overview Changes SVN-like data model Gnapshots Git maintains a snapshot of the data
  • 10. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.10 Git Overview The Three States • Modified • Staged (the staging area is also known as the index) • Committed
  • 11. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.11 Git Overview Git For Work • IntelliJ − In our experience Eclipse with EGIT support is awful • PHPStorm – bundled with Git integration • Command line Git, my preferred option Other Git Tools • TortoiseGit • Gitk
  • 12. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. GitBasics “Try not. Do or do not, there is no try” - Yoda
  • 13. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.13 Initializing a git repository Git Basics Starting fresh • git init Working from an existing repository • git clone <repository-url> − we know this as ‘svn checkout <repository-url>’
  • 14. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.14 Adding work Git Basics Commiting your work • git add <file> − git add -p <file> − git add -I <file> • git status • git commit [file] -m <commit-message>
  • 15. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.15 Common commands Git Basics Commiting your work • git status • git branch • git diff − --staged – see changes between staged to last commit • git rm • git mv • .gitignore • git log − -p – view diff − --stat – view a summary of commit file stats − --pretty=oneline --pretty=full or --pretty=format:”%h - %an, %ar : %s” − --graph − --since=2.weeks
  • 16. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.16 Undoing Git Basics Undoing changes • git commit –amend − Commits the staging area again instead of the previous commit • git reset HEAD <file> − Unstage a previously staged file • git checkout -- <file> − Revert local changes to that file
  • 17. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.17 Remotes Git Basics Working with Remotes • git remote -v − Lists remotes configured for this repository • git remote add <shortname> <url> − Adding a remote • git fetch <remote> <branch> − Fetch the changes from the remote repository (not yet merging them) • git pull <remote> <branch> − Fetch and merge changes from the remote repository to the local branch
  • 18. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.18 Remotes Git Basics Working with Remotes • git push <remote> <branch> − Push your changes to the remote repository − Pushing is only successful if your local copy is up to date with the remote • git remote show <remote> − Inspecting the remote for information • git remote rename <remote> <new-remote> − Renaming a remote • git remote rm <remote> − Removing a remote
  • 19. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.19 Tagging Git Basics Lightweight and Annotated Tags • git tag -a v2.0 -m “portal release 2.0” [hash] − Annotated tags (notice the -a flag) are saved as full Git objects meaning they contain author information, email, checksum, etc. • git tag v2.0 − Lightweight tags are just pointers to a commit (don’t provide -a, -m or -s) • git push <remote> --tags − Pushing our tags to the remote repository as they don’t get pushed with a plain ‘git push’
  • 20. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. GitBranches “Try not. Do or do not, there is no try” - Yoda
  • 21. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.21 Git Branches Overview • Diverge from the main line of development and continue to do work without messing with that main line • Expensive process, often requiring you to create a new copy of your source code directory Git killer branching • Incredibly lightweight and prompt
  • 22. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.22 Git Branches Overview • Stream-line a development methodology
  • 23. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.23 Git Branches Starting off • Starting on a fresh ‘master’ branch with 3 files: − README − License − test.rb • After performing git add && git commit, an example visual representation is as such:
  • 24. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.24 Git Branches Starting off • With each commit in time a new commit object is created and objects are pointing to parents (zero or more)
  • 25. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.25 Git Branches Starting off • The ‘master’ branch is simply a pointer that moves forward with each commit you make
  • 26. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.26 Git Branches Branching off • Creating new branches means creating new pointers to a certain commit • git branch testing
  • 27. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.27 Git Branches Branching off • HEAD pointer is used to point to the local branch you’re working on now • We’re still on ‘master’ cause we only created a new branch (testing) but didn’t yet switch to it
  • 28. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.28 Git Branches Branching off • HEAD pointer is used to point to the local branch you’re working on now • We’re still on ‘master’ cause we only created a new branch (testing) but didn’t yet switch to it • git checkout testing
  • 29. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.29 Git Branches Branching off • HEAD and testing branch pointers are both updated with each new commit • git commit -a -m “new file”
  • 30. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.30 Git Branches Branching off • Going back to our original ‘master’ branch: − Updated the HEAD pointer − Working directory looks different now, representing the state of the ‘master’ branch • git checkout master
  • 31. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.31 Git Branches Diverged road • Commiting work on the master branch again will diverge and enable us to work on 2 paths • git commit -a -m “another commit”
  • 32. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.32 Git Branches Re-cap • Branches are simply pointers • Due to commits data structure it is easy enough to find proper merge base and that process is mostly done automatic for us
  • 33. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. WebPresenceforGit
  • 34. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.34 Gitblit Gitblit • Open source Java project for hosting Git repositories • Includes a web interface for managing and interacting with repositories (attempts to live up to the Github promise)
  • 35. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.35 Gitblit Gitblit • Open source Java project for hosting Git repositories • Includes a web interface for managing and interacting with repositories (attempts to live up to the Github promise) • Includes a Java UI to manage users and their certificates • Feature-full, including repository federation and other cool stuff
  • 36. © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.36 Gitblit User Setup • Configure your git: − git config --global http.sslverify false − git config --global http.sslkey /pathto/lirantal.key − git config --global http.sslcert /pathto/lirantal.pem − git config --global http.proxy "" − git config --global user.name "Liran Tal" − git config --global user.email "[email protected]" • You’re ready to clone: git clone https://gitserver:8443/git/hpln.git