Presentation is loading. Please wait.

Presentation is loading. Please wait.

I don’t git it! Source control management deep dive with tfvc and git

Similar presentations


Presentation on theme: "I don’t git it! Source control management deep dive with tfvc and git"— Presentation transcript:

1 I don’t git it! Source control management deep dive with tfvc and git
Christopher Mank Chief Technologist White Ficus Nathan Lasnoski Chief Technology Officer Concurrency

2 Christopher Mank Nathan Lasnoski @cmank7 @nlasnoski Microsoft MVP
12+ Years IT 20+ Years IT Swimming Biking, skiing

3 Source control management

4 Source control providers

5 TFVC Team Foundation Version Control (TFVC)
“TFS” brand of source control Centralized version control Historical data stored on the server Like checking a book out at the library Server and Local Workspaces Path-based branches

6 TFVC architecture

7 TFVC branching

8 TFVC Demo

9 git Distributed Code Management
Each developer has a copy of the entire codebase with history Because each developer has the codebase, they can work offline Remote locations are used for merge/rebase and deployment

10 Git

11 5 Stages of Git

12 HEAD (big) The current branch. In more detail: Your working tree is normally derived from the state of the tree referred to by HEAD. HEAD is a reference to one of the heads in your repository, except when using a detached HEAD, in which case it directly references an arbitrary commit.

13 head (head ref) (little)
A named reference to the commit at the tip of a branch. Heads are stored in a file in $GIT_DIR/refs/heads/ directory.

14 Demo

15 rebase To reapply a series of changes from a branch to a different base, and reset the head of that branch to the result.

16 fetch Fetching a branch means to get the branch’s head ref from a remote repository, to find out which objects are missing from the local object database, and to get them, too. See also git-fetch(1).

17 pull Pulling a branch means to fetch it and merge it. See also git-pull(1).

18 push Pushing a branch means to get the branch’s head ref from a remote repository, find out if it is a direct ancestor to the branch’s local head ref, and in that case, putting all objects, which are reachable from the local head ref, and which are missing from the remote repository, into the remote object database, and updating the remote head ref. If the remote head is not an ancestor to the local head, the push fails..

19 Pull request (manage technical debt!)

20 Demo

21 .gitignore A gitignore file specifies intentionally untracked files that Git should ignore.

22 Import tfvc to git

23 Demo

24 submodule A repository that holds the history of a separate project inside another repository (the latter of which is called superproject).

25 index A collection of files with stat information, whose contents are stored as objects. The index is a stored version of your working tree. Truth be told, it can also contain a second, and even a third version of a working tree, which are used when merging.

26 graph

27 SourceTree

28 Git Virtual File System (GVFS)
GVFS stands for Git Virtual File System. GVFS virtualizes the file system beneath your git repo so that git and all tools see a fully hydrated repo, but GVFS only downloads objects as they are needed. GVFS also manages git's sparse-checkout to ensure that git operations like status, checkout, etc., can be as quick as possible.

29 Git branching

30 Tfvc or git

31 Tfvc or git TFVC Git Large files (Although GVFS will eliminate this)
Seasoned developer knowledge Centralized (History, branching, large code base) Git Tools and features Support Younger developer knowledge Industry and Microsoft standard Distributed (History, branching, smaller code base) (Popular) Object database (One copy of code base)

32 Tfvc or git

33 Tfvc or git So, TFVC or Git? If I had to pick…
Both work great and enable DevOps Both do nearly the same things, but in different ways If I had to pick… Version Control Guidance (ALM Rangers) The right version control for you

34 Appendix Git “git help glossary” SourceTree gitignore templates
Git in Visual Studio Scaling Git GVFS Import repo from TFVC to Git ALM Rangers Git Branching

35

36


Download ppt "I don’t git it! Source control management deep dive with tfvc and git"

Similar presentations


Ads by Google