SlideShare a Scribd company logo
Git Introduction
Fast Version Control
Who am I
• Gareth Hall
• Lead Developer and Hyundai New Zealand
• Director at Communica
(http://communica.co.nz)
What is git?
• Git is a distribute version control system
developed by Junio Hamano & Linus
Torvalds.
• Git does not use a centralised server.
• Git runs on major operating system like OS
X, Windows, Unix & Linux
Why it’s named git?
• Quoting Linus: “I’m egotistical, and I name
all my projects after myself. First Linux, now
git”
• Def: git - British slang for “pig headed, they
are always correct , argumentative”
What does git do?
• Git tracks changes to content.
Advantages of git
• Everything is local (almost)
• Fast
• Every clone / branch is a backup
• Work offline
• No single point of failure
• Lightweight
• Branching is cheap and merging is easy
• Many different workflows possible
• Distributed
• Every file and commit is checksummed
• Staging area
• Free and open source
Three States
Individual Workflow
Collaborative Workflow
Gitflow 1
Gitflow II
Basic Commands
Syntax: git <subcmd>
git init
•Create an empty git repository or reinitialize
an existing one
#:>git init
Initialized empty Git repository in
/Users/garethhall/Sites/git_intro/.git/
git status
• Show the working tree status
#:>git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# includes/
# index.php
nothing added to commit but untracked files present (use "git add" to track)
git add
• Add file contents to the index
• git add .
• git add <filename> <filenname>
git status
#:>git add .
#:>git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: includes/helpers.php
# new file: index.php
#
git commit
•Record changes to the repository
#:>git commit -m "first commit"
[master (root-commit) 5f8a8d4] first commit
2 files changed, 48 insertions(+)
create mode 100644 includes/helpers.php
create mode 100644 index.php
git log
•Show commit logs
#:>git log
commit 5f8a8d486ae1656b51194186c0dfb97ae1ec9835
Author: Gareth Hall <gareth@communica.co.nz>
Date: Sat Feb 16 14:43:40 2013 +1300
first commit
Edit files
#:>git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: includes/helpers.php
# modified: index.php
#
no changes added to commit (use "git add" and/or "git commit -a")
#:>git add index.php
#:>git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.php
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: includes/helpers.php
#
• #:>git commit -m "Changed output to table"
[master fffacb4] Changed output to table
1 file changed, 10 insertions(+), 2 deletions(-)
#:>git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: includes/helpers.php
#
no changes added to commit (use "git add" and/or "git commit -a")
#:>git log
commit fffacb43627c5a44850b4b1543dc359f5d95edd6
Author: Gareth Hall <gareth@communica.co.nz>
Date: Sat Feb 16 16:10:45 2013 +1300
Changed output to table
commit 5f8a8d486ae1656b51194186c0dfb97ae1ec9835
Author: Gareth Hall <gareth@communica.co.nz>
Date: Sat Feb 16 14:43:40 2013 +1300
first commit
#:>git diff includes/helpers.php
diff --git a/includes/helpers.php b/includes/helpers.php
index 5c9a1fe..002256c 100644
--- a/includes/helpers.php
+++ b/includes/helpers.php
@@ -1,5 +1,4 @@
<?php
-
/**
* Pretty Print Helper
*
@@ -28,6 +27,12 @@ function dd($data, $die = false)
{
echo '<pre>';
var_dump($data);
- echo '</pre>';
- $die ? die() : null;
-}
 No newline at end of file
+ echo '</pre>';
+ $die ? die() : null;
+}
+
+function logger($user_id, $message)
+{
+ $log_entry = $user_id . ',' . $message;
+ return file_put_contents('log.log', $log_entry) ? true : false;
+}
git diff
#:>git add .
#:>git commit -m "Added logger"
[master 817dee6] Added logger
1 file changed, 9 insertions(+), 4 deletions(-)
#:>git log --oneline --decorate
817dee6 (HEAD, master) Added logger
fffacb4 Changed output to table
5f8a8d4 first commit
git show• Show various types of objects
#:>git show fffacb4
commit fffacb43627c5a44850b4b1543dc359f5d95edd6
Author: Gareth Hall <gareth@communica.co.nz>
Date: Sat Feb 16 16:10:45 2013 +1300
Changed output to table
diff --git a/index.php b/index.php
index f1f4a05..df11b0b 100644
--- a/index.php
+++ b/index.php
@@ -10,6 +10,14 @@ if (($xml = @simplexml_load_file('https://www.bnz.co.nz/XMLFeed/portal/fcs/xml')
}
}
-pp($bnz_rates, true);
-
+print '<table border="1">';
+ print '<tr>';
+ print '<th>Code</th><th>Rate</th>';
+ print '</tr>';
+ foreach ($bnz_rates as $code => $rate){
+ print '<tr>';
+ print '<th>' . $code . '</th><th>' . $rate . '</th>';
+ print '</tr>';
+ }
+print '</table>';
git branch
•List, create, or delete branches
#:>git branch outputHelper
#:>git branch
* master
outputHelper
git checkout
•Checkout a branch or paths to the working tree
#:>git checkout outputHelper
Switched to branch 'outputHelper'
#:>git branch
master
* outputHelper
Develop new Feature
#:>git status
# On branch outputHelper
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: includes/helpers.php
# modified: index.php
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# includes/.DS_Store
# includes/output_helper.php
no changes added to commit (use "git add" and/or "git commit -a")
#:>git add includes/helpers.php
#:>git commit -m 'Added doc block to logger function'
[outputHelper df78fc4] Added doc block to logger function
1 file changed, 8 insertions(+)
#:>git commit -a -m 'Refactored with new table output helper'
[outputHelper 51da4b7] Refactored with new table output helper
3 files changed, 38 insertions(+), 11 deletions(-)
create mode 100644 includes/.DS_Store
create mode 100644 includes/output_helper.php
#:>git log --oneline --decorate --graph
* 51da4b7 (HEAD, outputHelper) Refactored with new table output helper
* df78fc4 Added doc block to logger function
* 817dee6 (master) Added logger
* fffacb4 Changed output to table
* 5f8a8d4 first commit
#:>git checkout master
Switched to branch 'master'
#:>git log --oneline --decorate --graph
* 817dee6 (HEAD, master) Added logger
* fffacb4 Changed output to table
* 5f8a8d4 first commit
git merge
• Join two or more development histories together
#:>git merge outputHelper
Updating 817dee6..51da4b7
Fast-forward
includes/.DS_Store | Bin 0 -> 6148 bytes
includes/helpers.php | 8 ++++++++
includes/output_helper.php | 36 ++++++++++++++++++++++++++++++++++++
index.php | 13 ++-----------
4 files changed, 46 insertions(+), 11 deletions(-)
create mode 100644 includes/.DS_Store
create mode 100644 includes/output_helper.php
#:>git log --oneline --decorate --graph
* 51da4b7 (HEAD, outputHelper, master) Refactored with new
table output helper
* df78fc4 Added doc block to logger function
* 817dee6 Added logger
* fffacb4 Changed output to table
* 5f8a8d4 first commit
git reset
• Reset current HEAD to the specified state
git push
• Update remote refs along with associated
objects
git fetch
• Download objects and refs from another
repository
git merge
• Join two or more development histories
together
git pull
• Fetch from and merge with another
repository or a local branch
• fetch + merge
How in Drupal?
• Add all of Drupal to git
• Use the Features module to move
configuration
• UUID Features to move content (alpha!)
Git Hosting Service
• Bitbucket (htt://bitbucket.org)
• Github (http://github.com)
• Run your own
• Gitosis
• Gitolite
Deployment
• Shell Access
• Continous Integration
• I don’t have shell access
• Setup your server as a remote
Deployment with shell
Continous Intergration
• Heroku (http://heroku.com)
• Pagoda (http://pagodabox.com)
• Bamboo
(http://atlassian.com/software/bamboo)
I don’t have shell
• Deploy (http://www.deployhq.com)
Server as Remote
• Will need to use git hooks
Git Hooks
Git Hooks
• #>vim post-receive
• #!/bin/sh
• cd ..
• GIT_DIR='.git'
• umask 002 && git reset --hard
Git GUI’s
Resources
• Git (http://git-scm.com)
• Wiki
(http://en.wikipedia.org/wiki/Git_(software)
)
• Git Essentials
(https://tutsplus.com/course/git-essentials/)
• Change Management andVersion Control
(http://buildamodule.com)
Visual Version Control
Gource (http://code.google.com/p/gource/)
Questions

More Related Content

PDF
Presentacion git
PDF
Starting with Git & GitHub
KEY
The everyday developer's guide to version control with Git
PPTX
Git branching strategies
PDF
git and github
PDF
Git and Github slides.pdf
PPTX
Git & GitLab
PPTX
GitHub Basics - Derek Bable
Presentacion git
Starting with Git & GitHub
The everyday developer's guide to version control with Git
Git branching strategies
git and github
Git and Github slides.pdf
Git & GitLab
GitHub Basics - Derek Bable

What's hot (20)

PDF
Git and github 101
PDF
Git - An Introduction
PPTX
Git in 10 minutes
PPTX
Github
PPTX
Git - Basic Crash Course
PDF
Git Introduction Tutorial
PPTX
GitHub Presentation
PPTX
Git and GitHub
PDF
Github - Git Training Slides: Foundations
PDF
Git & GitHub WorkShop
PPTX
PDF
Git real slides
PDF
Git Series. Episode 3. Git Flow and Github-Flow
PPTX
Jenkins CI
PPTX
Introduction git
PDF
What's New for GitLab CI/CD February 2020
PPTX
Git 101 for Beginners
PPTX
BitBucket presentation
PDF
Git flow
PDF
Git for beginners
Git and github 101
Git - An Introduction
Git in 10 minutes
Github
Git - Basic Crash Course
Git Introduction Tutorial
GitHub Presentation
Git and GitHub
Github - Git Training Slides: Foundations
Git & GitHub WorkShop
Git real slides
Git Series. Episode 3. Git Flow and Github-Flow
Jenkins CI
Introduction git
What's New for GitLab CI/CD February 2020
Git 101 for Beginners
BitBucket presentation
Git flow
Git for beginners
Ad

Viewers also liked (20)

DOC
Протокол публичных слушаний "Западный"
PDF
Афиша культурных мероприятий на сентябрь 2013
PDF
SACH MY THUAT
PPTX
Field trips project
PDF
ส งคม
PPTX
Poder para salvar
PPTX
Shekinah
PDF
Афиша культурных событий, июль 2013 г.
DOCX
Афиша культурных событий март 2014
DOCX
3 квартал рейтинг
PDF
Разъяснения минпромторга рф
PDF
Мероприятия, посвященные Международному дню инвалидов
PDF
Афиша культурных мероприятий на декабрь
PDF
Yet Another Hack
PPTX
Blunt Umbrellas Website Showcase
PDF
Реестр муниципальных услуг
PDF
Капитальный ремонт
PDF
Praktikum Pengenalan Dasar Database
PDF
Langkah mudah memahami pembuatan dns server ubuntu 12.04
DOC
Протокол публичных слушаний "Западный"
Протокол публичных слушаний "Западный"
Афиша культурных мероприятий на сентябрь 2013
SACH MY THUAT
Field trips project
ส งคม
Poder para salvar
Shekinah
Афиша культурных событий, июль 2013 г.
Афиша культурных событий март 2014
3 квартал рейтинг
Разъяснения минпромторга рф
Мероприятия, посвященные Международному дню инвалидов
Афиша культурных мероприятий на декабрь
Yet Another Hack
Blunt Umbrellas Website Showcase
Реестр муниципальных услуг
Капитальный ремонт
Praktikum Pengenalan Dasar Database
Langkah mudah memahami pembuatan dns server ubuntu 12.04
Протокол публичных слушаний "Западный"
Ad

Similar to Git Introduction (20)

KEY
Git Acquainted
PDF
Now i git it!!!
PDF
Git training v10
PDF
Introducción a git y GitHub
PDF
Advanted git
DOCX
Git github
PDF
Git and GitHub workflows
PDF
Source Code Management with Git
PDF
Introduction to GIT
PPTX
Git session Dropsolid.com
PDF
Pro git - grasping it conceptually
PDF
Git_real_slides
KEY
Gittalk
PDF
Git Concepts, Commands and Connectivity
PPTX
Learning Basic GIT Cmd
PDF
Version Control with Git
PPTX
GIT in a nutshell
PDF
Git workflows automat-it
PPT
Github By Nyros Developer
Git Acquainted
Now i git it!!!
Git training v10
Introducción a git y GitHub
Advanted git
Git github
Git and GitHub workflows
Source Code Management with Git
Introduction to GIT
Git session Dropsolid.com
Pro git - grasping it conceptually
Git_real_slides
Gittalk
Git Concepts, Commands and Connectivity
Learning Basic GIT Cmd
Version Control with Git
GIT in a nutshell
Git workflows automat-it
Github By Nyros Developer

Recently uploaded (20)

PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
How Creative Agencies Leverage Project Management Software.pdf
PPTX
history of c programming in notes for students .pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administration Chapter 2
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Nekopoi APK 2025 free lastest update
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
How Creative Agencies Leverage Project Management Software.pdf
history of c programming in notes for students .pptx
Upgrade and Innovation Strategies for SAP ERP Customers
How to Choose the Right IT Partner for Your Business in Malaysia
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
CHAPTER 2 - PM Management and IT Context
L1 - Introduction to python Backend.pptx
System and Network Administration Chapter 2
Softaken Excel to vCard Converter Software.pdf
ManageIQ - Sprint 268 Review - Slide Deck
Navsoft: AI-Powered Business Solutions & Custom Software Development
Nekopoi APK 2025 free lastest update
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Odoo POS Development Services by CandidRoot Solutions
Which alternative to Crystal Reports is best for small or large businesses.pdf
Design an Analysis of Algorithms II-SECS-1021-03

Git Introduction

  • 2. Who am I • Gareth Hall • Lead Developer and Hyundai New Zealand • Director at Communica (http://communica.co.nz)
  • 3. What is git? • Git is a distribute version control system developed by Junio Hamano & Linus Torvalds. • Git does not use a centralised server. • Git runs on major operating system like OS X, Windows, Unix & Linux
  • 4. Why it’s named git? • Quoting Linus: “I’m egotistical, and I name all my projects after myself. First Linux, now git” • Def: git - British slang for “pig headed, they are always correct , argumentative”
  • 5. What does git do? • Git tracks changes to content.
  • 6. Advantages of git • Everything is local (almost) • Fast • Every clone / branch is a backup • Work offline • No single point of failure • Lightweight • Branching is cheap and merging is easy • Many different workflows possible • Distributed • Every file and commit is checksummed • Staging area • Free and open source
  • 13. git init •Create an empty git repository or reinitialize an existing one #:>git init Initialized empty Git repository in /Users/garethhall/Sites/git_intro/.git/
  • 14. git status • Show the working tree status #:>git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # includes/ # index.php nothing added to commit but untracked files present (use "git add" to track)
  • 15. git add • Add file contents to the index • git add . • git add <filename> <filenname>
  • 16. git status #:>git add . #:>git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: includes/helpers.php # new file: index.php #
  • 17. git commit •Record changes to the repository #:>git commit -m "first commit" [master (root-commit) 5f8a8d4] first commit 2 files changed, 48 insertions(+) create mode 100644 includes/helpers.php create mode 100644 index.php
  • 18. git log •Show commit logs #:>git log commit 5f8a8d486ae1656b51194186c0dfb97ae1ec9835 Author: Gareth Hall <gareth@communica.co.nz> Date: Sat Feb 16 14:43:40 2013 +1300 first commit
  • 20. #:>git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: includes/helpers.php # modified: index.php # no changes added to commit (use "git add" and/or "git commit -a")
  • 21. #:>git add index.php #:>git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: index.php # # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: includes/helpers.php #
  • 22. • #:>git commit -m "Changed output to table" [master fffacb4] Changed output to table 1 file changed, 10 insertions(+), 2 deletions(-) #:>git status # On branch master # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: includes/helpers.php # no changes added to commit (use "git add" and/or "git commit -a")
  • 23. #:>git log commit fffacb43627c5a44850b4b1543dc359f5d95edd6 Author: Gareth Hall <gareth@communica.co.nz> Date: Sat Feb 16 16:10:45 2013 +1300 Changed output to table commit 5f8a8d486ae1656b51194186c0dfb97ae1ec9835 Author: Gareth Hall <gareth@communica.co.nz> Date: Sat Feb 16 14:43:40 2013 +1300 first commit
  • 24. #:>git diff includes/helpers.php diff --git a/includes/helpers.php b/includes/helpers.php index 5c9a1fe..002256c 100644 --- a/includes/helpers.php +++ b/includes/helpers.php @@ -1,5 +1,4 @@ <?php - /** * Pretty Print Helper * @@ -28,6 +27,12 @@ function dd($data, $die = false) { echo '<pre>'; var_dump($data); - echo '</pre>'; - $die ? die() : null; -} No newline at end of file + echo '</pre>'; + $die ? die() : null; +} + +function logger($user_id, $message) +{ + $log_entry = $user_id . ',' . $message; + return file_put_contents('log.log', $log_entry) ? true : false; +} git diff
  • 25. #:>git add . #:>git commit -m "Added logger" [master 817dee6] Added logger 1 file changed, 9 insertions(+), 4 deletions(-) #:>git log --oneline --decorate 817dee6 (HEAD, master) Added logger fffacb4 Changed output to table 5f8a8d4 first commit
  • 26. git show• Show various types of objects #:>git show fffacb4 commit fffacb43627c5a44850b4b1543dc359f5d95edd6 Author: Gareth Hall <gareth@communica.co.nz> Date: Sat Feb 16 16:10:45 2013 +1300 Changed output to table diff --git a/index.php b/index.php index f1f4a05..df11b0b 100644 --- a/index.php +++ b/index.php @@ -10,6 +10,14 @@ if (($xml = @simplexml_load_file('https://www.bnz.co.nz/XMLFeed/portal/fcs/xml') } } -pp($bnz_rates, true); - +print '<table border="1">'; + print '<tr>'; + print '<th>Code</th><th>Rate</th>'; + print '</tr>'; + foreach ($bnz_rates as $code => $rate){ + print '<tr>'; + print '<th>' . $code . '</th><th>' . $rate . '</th>'; + print '</tr>'; + } +print '</table>';
  • 27. git branch •List, create, or delete branches #:>git branch outputHelper #:>git branch * master outputHelper
  • 28. git checkout •Checkout a branch or paths to the working tree #:>git checkout outputHelper Switched to branch 'outputHelper' #:>git branch master * outputHelper
  • 30. #:>git status # On branch outputHelper # Changes not staged for commit: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: includes/helpers.php # modified: index.php # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # includes/.DS_Store # includes/output_helper.php no changes added to commit (use "git add" and/or "git commit -a")
  • 31. #:>git add includes/helpers.php #:>git commit -m 'Added doc block to logger function' [outputHelper df78fc4] Added doc block to logger function 1 file changed, 8 insertions(+) #:>git commit -a -m 'Refactored with new table output helper' [outputHelper 51da4b7] Refactored with new table output helper 3 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 includes/.DS_Store create mode 100644 includes/output_helper.php
  • 32. #:>git log --oneline --decorate --graph * 51da4b7 (HEAD, outputHelper) Refactored with new table output helper * df78fc4 Added doc block to logger function * 817dee6 (master) Added logger * fffacb4 Changed output to table * 5f8a8d4 first commit #:>git checkout master Switched to branch 'master' #:>git log --oneline --decorate --graph * 817dee6 (HEAD, master) Added logger * fffacb4 Changed output to table * 5f8a8d4 first commit
  • 33. git merge • Join two or more development histories together #:>git merge outputHelper Updating 817dee6..51da4b7 Fast-forward includes/.DS_Store | Bin 0 -> 6148 bytes includes/helpers.php | 8 ++++++++ includes/output_helper.php | 36 ++++++++++++++++++++++++++++++++++++ index.php | 13 ++----------- 4 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 includes/.DS_Store create mode 100644 includes/output_helper.php
  • 34. #:>git log --oneline --decorate --graph * 51da4b7 (HEAD, outputHelper, master) Refactored with new table output helper * df78fc4 Added doc block to logger function * 817dee6 Added logger * fffacb4 Changed output to table * 5f8a8d4 first commit
  • 35. git reset • Reset current HEAD to the specified state
  • 36. git push • Update remote refs along with associated objects
  • 37. git fetch • Download objects and refs from another repository
  • 38. git merge • Join two or more development histories together
  • 39. git pull • Fetch from and merge with another repository or a local branch • fetch + merge
  • 40. How in Drupal? • Add all of Drupal to git • Use the Features module to move configuration • UUID Features to move content (alpha!)
  • 41. Git Hosting Service • Bitbucket (htt://bitbucket.org) • Github (http://github.com) • Run your own • Gitosis • Gitolite
  • 42. Deployment • Shell Access • Continous Integration • I don’t have shell access • Setup your server as a remote
  • 44. Continous Intergration • Heroku (http://heroku.com) • Pagoda (http://pagodabox.com) • Bamboo (http://atlassian.com/software/bamboo)
  • 45. I don’t have shell • Deploy (http://www.deployhq.com)
  • 46. Server as Remote • Will need to use git hooks
  • 48. Git Hooks • #>vim post-receive • #!/bin/sh • cd .. • GIT_DIR='.git' • umask 002 && git reset --hard
  • 50. Resources • Git (http://git-scm.com) • Wiki (http://en.wikipedia.org/wiki/Git_(software) ) • Git Essentials (https://tutsplus.com/course/git-essentials/) • Change Management andVersion Control (http://buildamodule.com)
  • 51. Visual Version Control Gource (http://code.google.com/p/gource/)