This was from a 1-hour lunch & learn session given Jan 2014 by myself to an audience consisting mostly of technical field personnel (titles like solution architect, pre-sales engineer, professional services engineer). The hook is that when working with deploying and maintaining complex software with many text configuration files (like Splunk), or when working in very small teams on "casual" software development or just hacking some scripts together, it's very beneficial to have a source code management tool in place. I chose git, and highlighted the sorts of features that this tool provides to those who ARE NOT developers.
2. Agenda
Source Code Management Basics
What is Git (And why use it?)
What is Github?
Typical use cases for non-developers
Tutorials
2
3. Expectations
Hal is not a developer and does not claim to be one
Concepts will be simplified or MAYBE EVEN WAY WRONG
You won’t care and it doesn’t matter*
Please ask questions!
3
4. Source Code Management Basics
Maintain sets of changes (revisions) to text files
Can be centralized or distributed
Key strengths: workflow, collaboration, data integrity
Common terms include:
–
–
–
–
–
–
–
Working tree (folder | directory)
Add / checkin / checkout / clone
Commit / Commit log
Diff
Branch / merge
Push / Pull / Sync
Tag
4
5. What is Git?
Free software made by Linus Torvalds for Linux kernel development in
2005
Distributed SCM
No server, minimal requirements, easy to setup and use
CLI and GUI clients available for all platforms
Plugins exist for many text editors and IDEs
5
6. Why use it?
Team size = 1; maybe just use Box
>1 (or ever hope to have help); SCM is awesome
Git is among the easier SCM tools to use
Mature GUI clients for Mac & Windows
Very well documented, rabid fanbase community
Alternatives: SVN, Mercurial (hg), Perforce
6
7. What is Github?
Commercial service which provides git hosting
Social network for developers which encourages collaboration
Free and paid options
Publishes widely-used Mac and Windows GUI clients
Lightweight wiki and issue tracking features
7
8. Typical use cases for non-developers
Splunk app development
Script repository
Change control
8
9. How to get started?
Download GUI client from
http://github.com (includes
CLI)
Clone an existing repo, or
add existing code to a new
repo
9