SlideShare uma empresa Scribd logo
1 de 36
Git i Visual Studio 2013
Terje Sandstrøm
Visual Studio ALM MVP
http://geekswithblogs.net/terje
Inmeta Consulting AS
Inmeta Consulting AS - Terje Sandstrøm 2013
Lars J. Nilsson
ALM Manager
http://larzjoakimnilzzon.blogspot.no/
Inmeta Consulting AS
SHAMELESSLY
borrowed from
Richard
Banks
Visual Studio ALM MVP, Australia
http://www.Richard-banks.org
Http://www.readify.net/
Which again has …….
SHAMELESSLY
borrowed from
SCOTT
CHACON
(https://github.com/schacon/git-presentations
http://git-scm.com
• Git – intro
• Git repositories
• Working with git
• Branching
• Git in the Enterprise
Inmeta Consulting AS - Terje Sandstrøm 2013
git is
NOT AN
EVOLUTION
of existing VC systems
1
It is a
RETHINK
git is
NOT A
SOURCE CONTROL
SYSTEM
2
git is a
CONTENT
CONTROL SYSTEM
GIT is a
Distributed Version Control System
Fast, Small, Distributed
http://gitscm.com/
The entire Pro Git book
written by Scott Chacon is
available to read online for
free. Dead tree versions are
available on Amazon.com.
GIT DESIGN
a
TOOLKIT
for a DVCS
many chainable
COMMANDS
Traditional GIT is:
big on the
POWER
small on the
friendly
Easier tools
Visual Studio 2012 with Git extensions
Visual Studio 2013 , Git is included OOB
Add some nice tools:
SourceTree, Atlassian
https://github.com/Inmeta/Knowledge/wiki/recommended-git-
toolsInmeta Consulting AS - Terje Sandstrøm 2013
Git fully integrated
into Visual Studio
and TFS
Team Foundation Server / Service
Project 2Project 1
3rd Party3rd Party
Local
Repo
Other
Remote
Git Repo
most version control
systems store and track
CHANGES
(e.g. TFVC, SVN, mercurial)
C1
A
C
B
C2
∆1
∆1
C3
∆2
∆2
C4
∆3
C5
∆4
∆4
Git stores
SNAPSHOTS
of content
Snapshots are stored in a
DIRECTED ACYCLIC GRAPH
(i.e. a graph database)
C1
A
C
B
C2 C3 C4 C5
A’
C’
B
A’
C’’
B’
A’’
C’’
B’
A’’’
C’’
B’’
Git repo(sitory)
TFS 2013
Git repo(sitory)
GitHub/CodePlex/Bit
bucket
Cloning
Workspace
Code
Commit, (Stage), Add
Fetch, Pull, Push
Git repo(sitory)
Local
Inmeta Consulting AS - Terje Sandstrøm 2013
Repository models
Inmeta Consulting AS - Terje Sandstrøm 2013
Branching and merging
Frictionless context switching
Flexible
Fast
Inmeta Consulting AS - Terje Sandstrøm 2013
Demo
Inmeta Consulting AS - Terje Sandstrøm 2013
Terms with different meanings
Action TFS VC Git VS Git
Open a file Checkout NA, you just open it Marked as touched
(like checkout in
TFS VC)
Get latest files from
server
Get Latest Fetch + Pull Fetch + Pull
Send files to
server/repo
Checkin Commit + Push Commit + Push
Update all (two
above)
NA NA Sync
Does Pull + Push,
may trigger a merge
Move focus to
another branch
Manually change
folder in SC
Checkout Switch
Setup
Inmeta Consulting AS - Terje Sandstrøm 2013
•Git in the Enterprise
• Git is small
• Enterprises are big
• Enterprises are many small gits
Inmeta Consulting AS - Terje Sandstrøm 2013
Keep the git repo’s small
NO BINARIES IN SOURCE CONTROL !!!!!!!!!!!!
Use Nuget (or some other package manager) to keep binaries out
See https://github.com/Inmeta/Knowledge/wiki/NuGet-Setup
Publish your own libraries to a Nuget feed
Use MyGet http://www.myget.org/
Host your own Nuget feed, see
http://blog.spinthemoose.com/2013/03/09/nuget-tip-2-run-your-own-package-feed/
Inmeta Consulting AS - Terje Sandstrøm 2013
Managing a System with Git and Nuget
Split System into multiple Applications
Place each application in its own Git repository
Use a package manager to publish the binaries locally (within the company)
Use automatic package restore to retrieve them on build
Inmeta Consulting AS - Terje Sandstrøm 2013
Migrating from (or coexisting with) TFSVC to
GIT
Use Git-tf: https://gittf.codeplex.com/
(Download: http://www.microsoft.com/en-us/download/details.aspx?id=30474)
Clone a TFSVC TP or parts of a TP, into a git repo
Shallow clone or Deep Clone
Works on Windows and Mac
Inmeta Consulting AS - Terje Sandstrøm 2013
Splitting and merging repos
Split a repo:
Merge two repos:
Multiple ways:
1) simple with dual remote repos and just merge them
2) Git subtree
http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories
Inmeta Consulting AS - Terje Sandstrøm 2013
Git repo(sitory)
LocalGit repo(sitory)
Local
Git repo(sitory)
TFS 2013
Git repo(sitory)
GitHub/CodePlex/Bit
bucket
Workspace
Code
Commit, (Stage), Add
Fetch, Pull, Push
Git repo(sitory)
Local
Inmeta Consulting AS - Terje Sandstrøm 2013
The future of Version Control in TFS
Then:
We had: Source Safe
We got : TFS VC
Now:
We have: TFS VC
We got: Git
Future: Microsoft hasn’t said, but we can assume.....
Inmeta Consulting AS - Terje Sandstrøm 2013
http://geekswithblogs.net/Terje

Mais conteúdo relacionado

Mais procurados

Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testers
upadhyay_25
 

Mais procurados (20)

GitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorialGitLab 8.5 Highlights and Step-by-step tutorial
GitLab 8.5 Highlights and Step-by-step tutorial
 
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery AnalyticsDevoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
Devoxx 2016 Using Jenkins, Gerrit and Spark for Continuous Delivery Analytics
 
Zero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review UpgradeZero-Downtime Gerrit Code Review Upgrade
Zero-Downtime Gerrit Code Review Upgrade
 
Gerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and DockerGerrit is Getting Native with RPM, Deb and Docker
Gerrit is Getting Native with RPM, Deb and Docker
 
Git Lab Introduction
Git Lab IntroductionGit Lab Introduction
Git Lab Introduction
 
GerritHub.io - present, past, future
GerritHub.io - present, past, futureGerritHub.io - present, past, future
GerritHub.io - present, past, future
 
Git kelvin
Git   kelvinGit   kelvin
Git kelvin
 
Gerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and GroovyGerrit Code Review: how to script a plugin with Scala and Groovy
Gerrit Code Review: how to script a plugin with Scala and Groovy
 
Gerrit Code Review Analytics
Gerrit Code Review AnalyticsGerrit Code Review Analytics
Gerrit Code Review Analytics
 
OpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationOpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous Integration
 
Intro to Git & GitHub
Intro to Git & GitHubIntro to Git & GitHub
Intro to Git & GitHub
 
Bringing Pull Request to Gerrit
Bringing Pull Request to GerritBringing Pull Request to Gerrit
Bringing Pull Request to Gerrit
 
GitHub
GitHubGitHub
GitHub
 
Gerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub pluginGerrit Code Review with GitHub plugin
Gerrit Code Review with GitHub plugin
 
Getting Started with GitHub
Getting Started with GitHubGetting Started with GitHub
Getting Started with GitHub
 
Git Workshop
Git WorkshopGit Workshop
Git Workshop
 
Awesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and TeamsAwesome Git Workflow for Agencies and Teams
Awesome Git Workflow for Agencies and Teams
 
Git - Simplified For Testers
Git - Simplified For TestersGit - Simplified For Testers
Git - Simplified For Testers
 
Gerrit linuxtag2011
Gerrit linuxtag2011Gerrit linuxtag2011
Gerrit linuxtag2011
 
Introducing GitLab (June 2018)
Introducing GitLab (June 2018)Introducing GitLab (June 2018)
Introducing GitLab (June 2018)
 

Semelhante a Git i tfs 2013

Processes & tooling to develop the editor
Processes & tooling to develop the editorProcesses & tooling to develop the editor
Processes & tooling to develop the editor
Tech Head Brothers
 
3 Git
3 Git3 Git
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stash
Xpand IT
 

Semelhante a Git i tfs 2013 (20)

Introduction to git & github
Introduction to git & githubIntroduction to git & github
Introduction to git & github
 
Processes & tooling to develop the editor
Processes & tooling to develop the editorProcesses & tooling to develop the editor
Processes & tooling to develop the editor
 
Git
GitGit
Git
 
Introduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech ArticleIntroduction to GitHub, Open Source and Tech Article
Introduction to GitHub, Open Source and Tech Article
 
Git workshop
Git workshopGit workshop
Git workshop
 
3 Git
3 Git3 Git
3 Git
 
Introduction to git administration
Introduction to git administrationIntroduction to git administration
Introduction to git administration
 
Bedjango talk about Git & GitHub
Bedjango talk about Git & GitHubBedjango talk about Git & GitHub
Bedjango talk about Git & GitHub
 
Git introduction
Git introductionGit introduction
Git introduction
 
Open up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHubOpen up your platform with Open Source and GitHub
Open up your platform with Open Source and GitHub
 
Gitting better
Gitting betterGitting better
Gitting better
 
True Git
True Git True Git
True Git
 
Git best practices workshop
Git best practices workshopGit best practices workshop
Git best practices workshop
 
You're doing it wrong! Git it right!
You're doing it wrong! Git it right!You're doing it wrong! Git it right!
You're doing it wrong! Git it right!
 
Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015Introduction to Git, DrupalCamp LA 2015
Introduction to Git, DrupalCamp LA 2015
 
Introduction to git and stash
Introduction to git and stashIntroduction to git and stash
Introduction to git and stash
 
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great MigrationJAZOON'13 - Stefan Saasen - True Git: The Great Migration
JAZOON'13 - Stefan Saasen - True Git: The Great Migration
 
Webinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHubWebinar: Arbeiten mit Git und GitHub
Webinar: Arbeiten mit Git und GitHub
 
Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)Introduction to Git for Network Engineers (Lab Guide)
Introduction to Git for Network Engineers (Lab Guide)
 
Mini-training: Let’s Git It!
Mini-training: Let’s Git It!Mini-training: Let’s Git It!
Mini-training: Let’s Git It!
 

Último

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 

Git i tfs 2013

  • 1. Git i Visual Studio 2013 Terje Sandstrøm Visual Studio ALM MVP http://geekswithblogs.net/terje Inmeta Consulting AS Inmeta Consulting AS - Terje Sandstrøm 2013 Lars J. Nilsson ALM Manager http://larzjoakimnilzzon.blogspot.no/ Inmeta Consulting AS
  • 2. SHAMELESSLY borrowed from Richard Banks Visual Studio ALM MVP, Australia http://www.Richard-banks.org Http://www.readify.net/ Which again has …….
  • 4. • Git – intro • Git repositories • Working with git • Branching • Git in the Enterprise Inmeta Consulting AS - Terje Sandstrøm 2013
  • 5. git is NOT AN EVOLUTION of existing VC systems 1
  • 7. git is NOT A SOURCE CONTROL SYSTEM 2
  • 9. GIT is a Distributed Version Control System Fast, Small, Distributed http://gitscm.com/ The entire Pro Git book written by Scott Chacon is available to read online for free. Dead tree versions are available on Amazon.com.
  • 13.
  • 14. Traditional GIT is: big on the POWER small on the friendly
  • 15. Easier tools Visual Studio 2012 with Git extensions Visual Studio 2013 , Git is included OOB Add some nice tools: SourceTree, Atlassian https://github.com/Inmeta/Knowledge/wiki/recommended-git- toolsInmeta Consulting AS - Terje Sandstrøm 2013
  • 16. Git fully integrated into Visual Studio and TFS
  • 17. Team Foundation Server / Service Project 2Project 1 3rd Party3rd Party Local Repo Other Remote Git Repo
  • 18. most version control systems store and track CHANGES (e.g. TFVC, SVN, mercurial)
  • 21. Snapshots are stored in a DIRECTED ACYCLIC GRAPH (i.e. a graph database)
  • 22. C1 A C B C2 C3 C4 C5 A’ C’ B A’ C’’ B’ A’’ C’’ B’ A’’’ C’’ B’’
  • 23. Git repo(sitory) TFS 2013 Git repo(sitory) GitHub/CodePlex/Bit bucket Cloning Workspace Code Commit, (Stage), Add Fetch, Pull, Push Git repo(sitory) Local Inmeta Consulting AS - Terje Sandstrøm 2013
  • 24. Repository models Inmeta Consulting AS - Terje Sandstrøm 2013
  • 25. Branching and merging Frictionless context switching Flexible Fast Inmeta Consulting AS - Terje Sandstrøm 2013
  • 26. Demo
  • 27. Inmeta Consulting AS - Terje Sandstrøm 2013 Terms with different meanings Action TFS VC Git VS Git Open a file Checkout NA, you just open it Marked as touched (like checkout in TFS VC) Get latest files from server Get Latest Fetch + Pull Fetch + Pull Send files to server/repo Checkin Commit + Push Commit + Push Update all (two above) NA NA Sync Does Pull + Push, may trigger a merge Move focus to another branch Manually change folder in SC Checkout Switch
  • 28. Setup Inmeta Consulting AS - Terje Sandstrøm 2013
  • 29. •Git in the Enterprise • Git is small • Enterprises are big • Enterprises are many small gits Inmeta Consulting AS - Terje Sandstrøm 2013
  • 30. Keep the git repo’s small NO BINARIES IN SOURCE CONTROL !!!!!!!!!!!! Use Nuget (or some other package manager) to keep binaries out See https://github.com/Inmeta/Knowledge/wiki/NuGet-Setup Publish your own libraries to a Nuget feed Use MyGet http://www.myget.org/ Host your own Nuget feed, see http://blog.spinthemoose.com/2013/03/09/nuget-tip-2-run-your-own-package-feed/ Inmeta Consulting AS - Terje Sandstrøm 2013
  • 31. Managing a System with Git and Nuget Split System into multiple Applications Place each application in its own Git repository Use a package manager to publish the binaries locally (within the company) Use automatic package restore to retrieve them on build Inmeta Consulting AS - Terje Sandstrøm 2013
  • 32. Migrating from (or coexisting with) TFSVC to GIT Use Git-tf: https://gittf.codeplex.com/ (Download: http://www.microsoft.com/en-us/download/details.aspx?id=30474) Clone a TFSVC TP or parts of a TP, into a git repo Shallow clone or Deep Clone Works on Windows and Mac Inmeta Consulting AS - Terje Sandstrøm 2013
  • 33. Splitting and merging repos Split a repo: Merge two repos: Multiple ways: 1) simple with dual remote repos and just merge them 2) Git subtree http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories Inmeta Consulting AS - Terje Sandstrøm 2013
  • 34. Git repo(sitory) LocalGit repo(sitory) Local Git repo(sitory) TFS 2013 Git repo(sitory) GitHub/CodePlex/Bit bucket Workspace Code Commit, (Stage), Add Fetch, Pull, Push Git repo(sitory) Local Inmeta Consulting AS - Terje Sandstrøm 2013
  • 35. The future of Version Control in TFS Then: We had: Source Safe We got : TFS VC Now: We have: TFS VC We got: Git Future: Microsoft hasn’t said, but we can assume..... Inmeta Consulting AS - Terje Sandstrøm 2013