Difference between revisions of "DPS909 & OSD600 Winter 2017"
(→Week 4) |
(→Week 4) |
||
Line 68: | Line 68: | ||
** It is always safe to branch, it won't change the code in any way | ** It is always safe to branch, it won't change the code in any way | ||
** Relationship of <code>git commit</code> with branches | ** Relationship of <code>git commit</code> with branches | ||
− | *** commit SHA | + | *** commit SHA: <code>e0ee2b5acd01acbe5b0bc1ee24b73e5d53a1fd70</code> or shortened to <code>e0ee2b5</code> |
+ | *** <code>HEAD</code>: the most recent commit | ||
+ | *** branch: an easy to remember name we give to the current commit, e.g., <code>master</code> | ||
*** <code>master</code> branch vs. "Topic Branches": '''all work happens on a new branch''' | *** <code>master</code> branch vs. "Topic Branches": '''all work happens on a new branch''' | ||
** creating, switching between, updating | ** creating, switching between, updating | ||
*** <code>git branch <branch name></code>: <code>-d</code> (maybe delete), <code>-D</code> (force delete), <code>-m</code> (rename), <code>-a</code> (list all) | *** <code>git branch <branch name></code>: <code>-d</code> (maybe delete), <code>-D</code> (force delete), <code>-m</code> (rename), <code>-a</code> (list all) | ||
− | *** <code>git checkout <branch name></code> | + | *** <code>git checkout <branch name | commit SHA></code>, discussion of "detated HEAD" |
*** <code>git checkout -b <branch name> [<base commit> | HEAD]</code>(create if doesn't exist, checkout new branch) | *** <code>git checkout -b <branch name> [<base commit> | HEAD]</code>(create if doesn't exist, checkout new branch) | ||
*** <code>git checkout -B <branch name> [<base commit> | HEAD]</code> (create or reset, checkout new branch) | *** <code>git checkout -B <branch name> [<base commit> | HEAD]</code> (create or reset, checkout new branch) | ||
Line 85: | Line 87: | ||
*** create pull request | *** create pull request | ||
** merging | ** merging | ||
+ | *** A merge in git is a way of combining branches into a single branch/history | ||
+ | *** We always fix bugs and add features on '''new branches''', but then we need to '''merge''' them back into the main '''master''' branch | ||
+ | *** Merging doesn't change any of the branches it combines, it simply connects them. | ||
+ | *** <code>git merge <branch name></code> merges <code><branch name></code> '''into''' the currently checked out branch | ||
+ | *** Different merge algorithms | ||
+ | **** fast-forward merge - given identical histories, move the branch ahead in the history to the new tip | ||
+ | **** 3-way merge - divergent histories, use common ancestor commit (commit 1), and two branch tops (2, 3) | ||
+ | |||
*** recall that <code>git pull</code> does a <code>git fetch</code> and <code>git merge</code> in one step | *** recall that <code>git pull</code> does a <code>git fetch</code> and <code>git merge</code> in one step | ||
** rebasing | ** rebasing |
Revision as of 13:20, 30 January 2017
Resources for DPS909 & OSD600
Week 1
- Course introduction
- Some questions:
- What was the first video game you ever played?
- What are your main technical strengths, which technologies do you know well and enjoy?
- Which (new) technologies are you excited to learn and try?
- When you hear "open source," what comes to mind?
- Do you have any hesitation, fears, or anxieties about working in open source projects?
- How to have Success in this course:
- Willingness to be lost and not panic
- Willingness to put yourself out there, jump in
- Curiosity
- Being driven, persistence
- Willingness to ask for help
- Willingness to give others help
- Independent learning
- Doing more than the bare minimum
- One example of something we'll work on together: Thimble
- Brackets, originally started by Adobe, now used in Dreamweaver
- Seneca created Bramble based on Brackets, for the web
- Mozilla used Bramble to create the Thimble web code editor
- Also being integrated into Code.org
Week 2
- Introducing git
- Readings/Resources
Week 3
- Working with Git Remotes
- Discussion of Project, First Release
Week 4
- Working with git Branches
- Lightweight, movable, reference (or pointer) to a commit
- Series of commits: a branch is the furthest tip of a line of commits
- It is always safe to branch, it won't change the code in any way
- Relationship of
git commit
with branches- commit SHA:
e0ee2b5acd01acbe5b0bc1ee24b73e5d53a1fd70
or shortened toe0ee2b5
-
HEAD
: the most recent commit - branch: an easy to remember name we give to the current commit, e.g.,
master
-
master
branch vs. "Topic Branches": all work happens on a new branch
- commit SHA:
- creating, switching between, updating
-
git branch <branch name>
:-d
(maybe delete),-D
(force delete),-m
(rename),-a
(list all) -
git checkout <branch name | commit SHA>
, discussion of "detated HEAD" -
git checkout -b <branch name> [<base commit> | HEAD]
(create if doesn't exist, checkout new branch) -
git checkout -B <branch name> [<base commit> | HEAD]
(create or reset, checkout new branch)
-
- local vs. remote, tracking branches
- common workflow
-
git checkout master
- switch to master branch -
git pull upstream master
- pull in any new commits from the upstream/master branch -
git checkout -b issue-1234
- create a topic branch for your work, named with bug # -
git add files
- edit files, add to staging area -
git commit -m "Fix #1234: ..."
- commit changes, referencing bug # in commit message -
git push origin issue-1234
- push your topic branch (and all commits) to your origin repo - create pull request
-
- merging
- A merge in git is a way of combining branches into a single branch/history
- We always fix bugs and add features on new branches, but then we need to merge them back into the main master branch
- Merging doesn't change any of the branches it combines, it simply connects them.
-
git merge <branch name>
merges<branch name>
into the currently checked out branch - Different merge algorithms
- fast-forward merge - given identical histories, move the branch ahead in the history to the new tip
- 3-way merge - divergent histories, use common ancestor commit (commit 1), and two branch tops (2, 3)
- recall that
git pull
does agit fetch
andgit merge
in one step
- recall that
- rebasing
- gh-pages
- Git Walkthrough #3 - Branches