29
Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git

Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Advanced:Tags & Branches

Mary Kate TrostJuly 8, 2011

How To Use Git

Page 2: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

2 of 29

Create a Version (Tags)● When releasing, want to mark that version so you can

go back to it● Create a tag

● git tag -a tagName -m 'tag description'● Example:

git tag -a v1.1 -m 'version 1.1 contains the first version'

Page 3: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

3 of 29

Git Tags● List tags

● git tag● git tag -l v1.1.*

● Get info on a tag● git show tagName

● Push to remote● Not automatically

pushed to the remote● git push origin tagName

Page 4: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

4 of 29

Branching● Start from a certain version and make modifications

separate from the main version● Allows you to develop changes and store intermediate files

prior to putting them in the version everyone else sees (a form of backup)

● Allows you to collaborate with a couple people without affecting everyone else

● See what branches there are● git branch● Current branch marked with '*'

$ git branch master* pileup

Page 5: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

5 of 29

Branch ConceptCreate and switch to new branch called testing

From: http://progit.org/book/ch3-1.html

Page 6: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

6 of 29

Branch ConceptCreate and switch to new branch called testing

Commit a change on the new branch

From: http://progit.org/book/ch3-1.html

Page 7: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

7 of 29

Move back to master (default) branch

Branch ConceptCreate and switch to new branch called testing

Commit a change on the new branch

From: http://progit.org/book/ch3-1.html

Page 8: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

8 of 29

Move back to master (default) branch

Branch ConceptCreate and switch to new branch called testing

Commit a change on the new branch

Commit a change to master

From: http://progit.org/book/ch3-1.html

Page 9: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

9 of 29

Switching Branches● Uncommitted changes will end up in the new branch

● Commit everything that goes in the current branch before switching

● Branch checkout fails if uncommitted changes conflict with the branch

● git checkout -b branchName● Creates starting from the currently checked out branch

– May need to switch branches before creating a new one

● git checkout branchName

Create a branch and switch to it

Switch to an existing branch

From: http://progit.org/book/ch3-2.html

Page 10: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

10 of 29

Branch Merging● Checkout the branch you want to merge into

● git checkout branchMergeInto● Often: git checkout master

● Merge the other branch into it● git merge branchMergingFrom● ”Fast forward” - no divergent work, just moves the pointer to

the latest commit on the other branch

From: http://progit.org/book/ch3-2.html

Page 11: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

11 of 29

Branch Example

From: http://progit.org/book/ch3-2.html

Page 12: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

12 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

From: http://progit.org/book/ch3-2.html

Page 13: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

13 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

From: http://progit.org/book/ch3-2.html

Page 14: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

14 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

Make changes & commit them$ git add modifiedFiles$ git commit -m ”describe partial updates for issue 53”

From: http://progit.org/book/ch3-2.html

Page 15: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

15 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

Make changes & commit them$ git add modifiedFiles$ git commit -m ”describe partial updates for issue 53”

From: http://progit.org/book/ch3-2.html

Page 16: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

16 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

Make changes & commit them$ git add modifiedFiles$ git commit -m ”describe partial updates for issue 53”

Need to make a different fix based off master$ git checkout masterSwitched to branch "master"$ git checkout -b 'hotfix'Switched to a new branch "hotfix"Make changes & commit them$ git add modifiedFiles$ git commit -m 'fixed major issue'

From: http://progit.org/book/ch3-2.html

Page 17: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

17 of 29

Branch Example

Start work on issue #53$ git checkout -b iss53Switched to a new branch "iss53"

Make changes & commit them$ git add modifiedFiles$ git commit -m ”describe partial updates for issue 53”

Need to make a different fix based off master$ git checkout masterSwitched to branch "master"$ git checkout -b 'hotfix'Switched to a new branch "hotfix"Make changes & commit them$ git add modifiedFiles$ git commit -m 'fixed major issue'

From: http://progit.org/book/ch3-2.html

Page 18: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

18 of 29

Merge Example

From: http://progit.org/book/ch3-2.html

Page 19: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

19 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

From: http://progit.org/book/ch3-2.html

Page 20: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

20 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

From: http://progit.org/book/ch3-2.html

Page 21: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

21 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

Done with hotfix branch, so delete it$ git branch -d hotfixDeleted branch hotfix (3a0874c).Switch back to in-work branch iss53$ git checkout iss53Switched to branch "iss53"Make more changes & commit$ git add changedFiles$ git commit -m 'finished description'

From: http://progit.org/book/ch3-2.html

Page 22: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

22 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

Done with hotfix branch, so delete it$ git branch -d hotfixDeleted branch hotfix (3a0874c).Switch back to in-work branch iss53$ git checkout iss53Switched to branch "iss53"Make more changes & commit$ git add changedFiles$ git commit -m 'finished description'

From: http://progit.org/book/ch3-2.html

Page 23: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

23 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

Done with hotfix branch, so delete it$ git branch -d hotfixDeleted branch hotfix (3a0874c).Switch back to in-work branch iss53$ git checkout iss53Switched to branch "iss53"Make more changes & commit$ git add changedFiles$ git commit -m 'finished description'

Merge into master$ git checkout master$ git merge iss53Merge made by recursive....

From: http://progit.org/book/ch3-2.html

Page 24: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

24 of 29

Merge Example

Merge hotfix to master$ git checkout master$ git merge hotfixUpdating f42c576..3a0874cFast forward...

Done with hotfix branch, so delete it$ git branch -d hotfixDeleted branch hotfix (3a0874c).Switch back to in-work branch iss53$ git checkout iss53Switched to branch "iss53"Make more changes & commit$ git add changedFiles$ git commit -m 'finished description'

Merge into master$ git checkout master$ git merge iss53Merge made by recursive....

Git automatically does a 3-way merge, using C2 (common ancestor), C4, & C5 into new commit, C6.

From: http://progit.org/book/ch3-2.html

Page 25: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

25 of 29

Merge Conflict● Same part of the file modified, git needs your help!

<<<<<<< HEAD:index.html<div id="footer">contact : [email protected]</div>=======<div id="footer"> please contact us at [email protected]</div>>>>>>>> iss53:index.html

$ git merge iss53Auto-merging index.htmlCONFLICT (content): Merge conflict in index.htmlAutomatic merge failed; fix conflicts and then commit the result.

Merge conflict – lets you resolve

$ git statusindex.html: needs merge# On branch master# Changed but not updated:# (use "git add <file>..." to update what will be committed)# (use "git checkout -- <file>..." to discard changes in working directory)## unmerged: index.html#

Git status indicates unmerged

>>>>>>> - end other branch's version

<<<<<<< - start current branch's version

======= - separate's the 2 versions Conflicts are marked in the file

From: http://progit.org/book/ch3-2.html

Page 26: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

26 of 29

Resolving Merge Conflict● Make appropriate changes● Delete the <<<<<<<, =======, and >>>>>>>● Add to the staged files

● git add nowMergedFile

● Commit the merge● git commit

– Update the default merge message with a description of how you resolved the merge

● You can also use a mergetool: git mergetool

From: http://progit.org/book/ch3-2.html

Page 27: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

27 of 29

Sharing Branches● Like tags not automatically pushed

● git push origin branchName

● To see all branches including remotes:● git branch -a

● Base work on a remote branch/merge back to it● git checkout --track origin/branchName● Creates & checkouts branch called branchName

● Now push & pull from your branchName

Only needed once

Only needed once

Page 28: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

28 of 29

Cleaning up Branches● Delete branch after merging & you are done with it

● git branch -d branchName● Make sure you have merged first!

● Delete remote branch: ● git push origin :branchName

Page 29: Advanced: Tags & Branches Mary Kate Trost July 8, 2011€¦ · Advanced: Tags & Branches Mary Kate Trost July 8, 2011 How To Use Git. Tuesday, June 7, 2011 2 of 29 Create a Version

Tuesday, June 7, 2011

29 of 29

Resources● https://statgen.sph.umich.edu/wiki/How_To_Use_Git● http://progit.org/book/● http://www.kernel.org/pub/software/scm/git/docs/git.html