Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link...

15
Git Basics Sean Ovens & Jan Clarin

Transcript of Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link...

Page 1: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Git Basics

Sean Ovens & Jan Clarin

Page 2: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Version Control Systems● What are they?

○ Systems that records changes to a set of files so that you can revert to specific versions later

● Basic idea:

Retrieved: https://git-scm.com/book/en/v2/book/01-introduction/images/distributed.png

Page 3: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Git - “the stupid content tracker”● Development started by Linus Torvalds

● Spawned from BitKeeper○ used to maintain Linux project

● “git”?

"I'm an egotistical bastard, and I name all my projects after myself. First 'Linux', now 'git'."

Page 4: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Git Introduction● What is it?

○ A version control system

● The three file states:

Retrieved: https://git-scm.com/book/en/v2/book/01-introduction/images/areas.png

Page 5: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Why use Git?● Industry standard

● Versatile

● Can be used offline

● Extremely popular

Page 6: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Getting Started● Windows: http://git-scm.com/download/win

● Mac: http://git-scm.com/download/mac

● Linux: sudo apt-get install git-all

Page 7: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Creating a Local Repository● Create a directory:

○ mkdir folderName○ cd folderName

● Initialize a repository:○ git init

● Create a file:○ touch octodex.txt

● Add to stage:○ git add octodex.txt

● Commit:○ git commit -m “Created octodex.txt”

Run ‘git status’ after every command to see changes

Page 8: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

● Git is a distributed version control system (VCS)○ Others VCSs include CVS, SVN, Mercurial etc.

● GitHub is a remote host for Git repositories○ Others like it include Gitlab, BitBucket, CloudForge etc.

Page 9: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

● What is it?○ Remote host for git repositories

● Account setup:○ Go to github.com○ Sign up with username, email, password

Page 10: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Configuration● Link to your GitHub account:

○ git config --global user.name “Your Name”○ git config --global user.email “[email protected]

● Check your work:○ git config --list

● Other configuration options:○ git config --global help.autocorrect 30○ git config --global commit.template path/to/file.txt○ git config --global color.* “colour name”

etc.

Page 11: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Creating a Remote Repository● On GitHub:

○ New repository○ Set to public○ Create repository

● Back up your local repo:○ git remote add origin https://github.com/Username/Repository○ git push -u origin master

● Add contributors:○ Settings/Contributors

Page 12: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Branching● What is a branch?

○ An object that points to a commit

● Creating a new branch:○ git branch newBranch○ git checkout newBranch

Retrieved: https://git-scm.com/book/en/v2/book/03-git-branching/images/basic-branching-4.png

Page 13: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Merging● Merging two branches:

○ git checkout master○ git merge test

● Deleting an old branch:○ git branch -d test

Retrieved: https://git-scm.com/book/en/v2/book/03-git-branching/images/basic-merging-2.png

Page 14: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

Undoing● See old commits:

○ git log

● Return to an old commit:○ git reset commitHash

● Reset moves current branch○ Does not change working directory

● Change last commit:○ Stage changes with git add *○ git commit --amend

Page 15: Git Basics - Problem Solving Clubpsc.cpsc.ucalgary.ca/.../2016-10-21-GitBasics.pdfConfiguration Link to your GitHub account: git config --global user.name “Your Name” git config

ExerciseGo to https://github.com/janclarin/git-workshop