CS 435 - Week 11 Lecture 1 - 2014-04-08

More on Git/GitHub

*   at-least-partial list of references:
    *   [1] "GitHub in the Classroom, Not just for Group 
             Projects", JCSC, April 2013, Vol 28 Number 4, 
             p. 74
    *   [2] http://stephaniehoh.github.io/blog/2013/10/07/git-vs-github-for-dummies/
    *   [3] http://training.github.com/kit/
    *   [4] https://foo.cs.ucsb.edu/56wiki/index.php/Github:_SIGCSE_2013_Course_Notes
    *   [5] GitHub Git Cheat Sheet card 
        (can be downloaded from: 
	https://help.github.com/articles/git-cheatsheet)
    *   [6] Fall 2011 CIS 480 XP team's "Guide to Git"

reminder: what is Git?
*   a distributed popular version control system with 
    versions for Mac, Windows, and UNIX

*   distributed?
    *   you can run it locally -- keep a local copy --
        but can also have copies elsewhere, distributed
	across different locations;

	in particular, there can be a team version,
	and each team member can have their own version;

*   version control? 
    *   you can check in copies of files as they are
        developed, 
	you can check OUT not just the latest version,
	but PREVIOUS versions, as desired;

    *   (note: Git is just one of several version
        control systems...)

*   Git goes deeper -- you can create and work on
    BRANCHES, 
    [2] "which are basically parallel universes that you 
    can switch back and forth out of interchangeably"

    *   you can then merge branches in you want, discard
        those you don't want, etc.

reminder: what is GitHub?
*   a web-based HOSTING service for software projects
    that uses Git
    *   https://github.com/
    *   public repositories are free -- private
        repositories come at a price
	(although free repositories can be requested
	for educational purposes, such as the CS 435
	team private repositories)

*   MAKE SURE YOU KNOW -- you can use Git without
    using GitHub!
    *   you can just use Git to keep track of versions
        of software on your own computer, or on
	your computer and other computers;

    *   ...but GitHub is very convenient to use in
        conjunction with Git;

*   can download Git for your computer from (for example):

    *   Mac version: 
        mac.github.com
    *   Windows version: 
        windows.github.com
    *   Unix/Linux versions with apt-get:
        sudo apt-get install git 

        # note that a number of Linux distributions support 
	#    apt-get

    *   Git is basically a command line tool,
        although the above include some GUI
	tools, as does GitHub;

*   AND -- [4], amongst others, recommend: LEARN the
    command-line version of Git first... 8-)

core.autocrlf
*   recommended setting for Unix USERS (Unix/Linux/Mac OS X)

    git config --global core.autocrlf input

*   recommended setting for Windows USERS

    git config --global core.autocrlf true

*   (the default setting is false --
    the given line endings are simply preserved!)