Skip to content

Latest commit

 

History

History
144 lines (86 loc) · 3.71 KB

slides.md

File metadata and controls

144 lines (86 loc) · 3.71 KB

Girl Develop It


Version Control And Related Topics


Taylor C. MacDonald

https://github.com/tcmacdonald/intro-to-git


Welcome!

Girl Develop It is here to provide affordable and accessible programs to learn software through mentorship and hands-on instruction.


Some Rules

  • We are here for you— ask questions!
  • Every question is important.
  • Help each other.
  • Have fun.

Class Overview

  • What is version control?
  • Using the command line
  • Git in practice

The Problem

Software projects have lots of files and often require multiple developers making updates to the same codebase.


  • Accidental overwrites
  • Bugs
  • Who changed what?
  • Collaborating remotely is hard.

The Solution

"Version Control" is a system that records changes to files over time.

  • Track every change to every file.
  • Manage multiple versions of file(s).
  • Who added/edited/deleted what?
  • Attach descriptive messages to each change.

Types of Version Control

Over the years, different strategies for version control have evolved.

Two types of version control systems:

Centralized and Decentralized


Centralized

Assumes a single "central" copy of your project somewhere (probably on a server), and programmers will "commit" their changes to this central copy.

Examples include Subversion, CVS and SourceSafe


Distributed

Doesn't rely on a central server. Every developer "clones" a copy of a repository and has the full history of the project on their own hard drive.

Examples include Bazaar, Mercurial and Git


Why Git?

...designed to manage everything for small or large projects with speed & efficiency.

  1. Easy to learn
  2. Provides multiple development workflows
  3. Open source

More About Git

Created by Linus Torvalds in 2005 for Linux Kernel Development

  1. Very fast and efficient
  2. Cheap local branching
  3. Works great remotely
  4. Popularized by Github

Getting Git


Getting Git

There are also some GUIs for Git...


What is Github?

Github helps you visualize your repository while providing some powerful collaboration and code management tools.

  • Forks & Pull Requests
  • Issues
  • Wikis & Github Pages
  • Organizations
  • Releases & Tags
  • ...and more

Questions?

If not, let's review the class appendix together...

https://github.com/tcmacdonald/intro-to-git/blob/master/appendix.md