Open main menu

CDOT Wiki β

Changes

DPS909 & OSD600 Winter 2017

913 bytes added, 13:20, 30 January 2017
Week 4
** It is always safe to branch, it won't change the code in any way
** Relationship of <code>git commit</code> with branches
*** 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., branch<code>master</code>
*** <code>master</code> branch vs. "Topic Branches": '''all work happens on a new branch'''
** 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 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 or reset, checkout new branch)
*** 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.
*** <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
** rebasing