Git And Social Coding Chris Gomez @SpaceShot www.chrisgomez.com Chris Gomez • Microsoft MVP in Visual Studio Tools and Technologies (ASP.NET) • Co-host of the Static Void Podcast • Philly Game Works - www.phillygameworks.org - @phillygameworks Git • Created by Linus Torvalds https://www.youtube.com/watch?v=4XpnKHJAok8 Goals • Suitable for Open Source collaboration • No central server, lack of connectivity to contributors • Don’t want to have to know and trust all the contributors • Intended for Linus to have a “web of trust” in dealing with Linux • Something that is not CVS or SVN • Intense dislike of CVS and SVN • Top complaint seems to be “intelligent merging” • Also complaint that merge pain often fell on a victim rather than perpetrator It’s just a Directed Acyclic Graph! • A very complicated way of saying something very simple: http://xkcd.com/1597/ Exploring the git filesystem But how are you really going to use Git? git rebase – when the world moved on… feature C1 C2 C3 C6 C4 C5 C7 master git rebase – time travel your work feature C1 C2 C4 C5 C7 master C3 C6 git rebase interactive – Why? feature C3 C1 C2 master C4 C5 C6 C7 git rebase interactive – rewrite history feature C3/C4 squashed C1 C2 master C6 better commit message C7 C5 was dumped. Can rewrite commits Squash commits Pick commits Some great resources https://www.youtube.com/watch?v=SiokK8Q1wo0 https://www.youtube.com/watch?v=dBSHLb1B8sw https://www.youtube.com/watch?v=duqBHik7nRo But how are you really going to use Git? But how are you really going to use Git? • You are probably going to use… a central server! • You might use GitHub, BitBucket, Visual Studio Team Services in the cloud (among others) • You might use TFS on premises, GitLab, GitHub Enterprise, BitBucket Enterprise Wait, doesn’t this just make it SVN, CVS, TFS, VSS all over again?!?! To the Cloud!... libgit2 • A reimplementation of Git in C with many bindings: • C#, Python, Ruby, Java • “re-entrant linkable library with a solid API” • This means it’s okay to use it in your application. It is respectful of system resources and tries to keep from bringing down your application https://libgit2.github.com/ Git Man Page Generator (Fun) • https://git-man-page-generator.lokaltog.net/ • Please note this is not real git documentation, but a joke about Git documentation.
© Copyright 2026 Paperzz