Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

Size: px
Start display at page:

Download "Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48"

Transcription

1 Git and GitHub Dan Wysocki February 12, 2015 Dan Wysocki Git and GitHub February 12, / 48

2 1 Version Control 2 Git 3 GitHub 4 Walkthrough Dan Wysocki Git and GitHub February 12, / 48

3 Version Control Dan Wysocki Git and GitHub February 12, / 48

4 Background when dealing with a document which changes over time, a system for recording and organizing those changes is important Dan Wysocki Git and GitHub February 12, / 48

5 Background when dealing with a document which changes over time, a system for recording and organizing those changes is important books are released in separate volumes Dan Wysocki Git and GitHub February 12, / 48

6 Background when dealing with a document which changes over time, a system for recording and organizing those changes is important books are released in separate volumes with the dawn of computing, more incremental versioning became both feasible and necessary Dan Wysocki Git and GitHub February 12, / 48

7 Version Control Systems (VCS) CVS (1986) Dan Wysocki Git and GitHub February 12, / 48

8 Version Control Systems (VCS) CVS (1986) SVN (2000) Dan Wysocki Git and GitHub February 12, / 48

9 Version Control Systems (VCS) CVS (1986) SVN (2000) Mercurial (2005) Dan Wysocki Git and GitHub February 12, / 48

10 Version Control Systems (VCS) CVS (1986) SVN (2000) Mercurial (2005) Git (2005) Dan Wysocki Git and GitHub February 12, / 48

11 Git Dan Wysocki Git and GitHub February 12, / 48

12 Background an open source version control system created by Linus Torvalds Dan Wysocki Git and GitHub February 12, / 48

13 Background an open source version control system created by Linus Torvalds designed with lessons learned from Linux Dan Wysocki Git and GitHub February 12, / 48

14 Background an open source version control system created by Linus Torvalds designed with lessons learned from Linux distributed version control system Dan Wysocki Git and GitHub February 12, / 48

15 Background an open source version control system created by Linus Torvalds designed with lessons learned from Linux distributed version control system non-linear development history Dan Wysocki Git and GitHub February 12, / 48

16 Background an open source version control system created by Linus Torvalds designed with lessons learned from Linux distributed version control system non-linear development history multiple developers working in parallel Dan Wysocki Git and GitHub February 12, / 48

17 Repository a data structure which stores files and a record of changes Dan Wysocki Git and GitHub February 12, / 48

18 Repository a data structure which stores files and a record of changes Git repositories are designed like filesystems Dan Wysocki Git and GitHub February 12, / 48

19 Repository a data structure which stores files and a record of changes Git repositories are designed like filesystems a Git repository is stored on a remote server, and each developer makes a local clone Dan Wysocki Git and GitHub February 12, / 48

20 Repository a data structure which stores files and a record of changes Git repositories are designed like filesystems a Git repository is stored on a remote server, and each developer makes a local clone changes are committed to the local repository, and the local repository is then pushed to the remote Dan Wysocki Git and GitHub February 12, / 48

21 Commits an update to a repository Dan Wysocki Git and GitHub February 12, / 48

22 Commits an update to a repository contains: Dan Wysocki Git and GitHub February 12, / 48

23 Commits an update to a repository contains: a short user-made description (basically a title) Dan Wysocki Git and GitHub February 12, / 48

24 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description Dan Wysocki Git and GitHub February 12, / 48

25 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description a record of changes made to the repository Dan Wysocki Git and GitHub February 12, / 48

26 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description a record of changes made to the repository additions (+) Dan Wysocki Git and GitHub February 12, / 48

27 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description a record of changes made to the repository additions (+) deletions (-) Dan Wysocki Git and GitHub February 12, / 48

28 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description a record of changes made to the repository additions (+) deletions (-) a unique identifier Dan Wysocki Git and GitHub February 12, / 48

29 Commits an update to a repository contains: a short user-made description (basically a title) an optional long description a record of changes made to the repository additions (+) deletions (-) a unique identifier every commit is stored in the repository s history, and may be reverted to at any time Dan Wysocki Git and GitHub February 12, / 48

30 Branches a Git repository may be separated into multiple branches Dan Wysocki Git and GitHub February 12, / 48

31 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master Dan Wysocki Git and GitHub February 12, / 48

32 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other Dan Wysocki Git and GitHub February 12, / 48

33 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects Dan Wysocki Git and GitHub February 12, / 48

34 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact Dan Wysocki Git and GitHub February 12, / 48

35 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact branches can be merged together, combining their commit histories Dan Wysocki Git and GitHub February 12, / 48

36 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact branches can be merged together, combining their commit histories pull requests Dan Wysocki Git and GitHub February 12, / 48

37 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact branches can be merged together, combining their commit histories pull requests a request to pull changes from one branch to another Dan Wysocki Git and GitHub February 12, / 48

38 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact branches can be merged together, combining their commit histories pull requests a request to pull changes from one branch to another similar to a commit (description, record of changes, unique identifier) Dan Wysocki Git and GitHub February 12, / 48

39 Branches a Git repository may be separated into multiple branches the primary branch is conventionally named master each branch may be worked on independently, without affecting each other essential for managing group projects still useful for single person projects, as functionality-breaking changes may be worked on in separate branches while master remains intact branches can be merged together, combining their commit histories pull requests a request to pull changes from one branch to another similar to a commit (description, record of changes, unique identifier) must be accepted before changes are committed, allowing collaborators to review or test the code first Dan Wysocki Git and GitHub February 12, / 48

40 Forks a user may fork any repository they have access to, creating an independent copy Dan Wysocki Git and GitHub February 12, / 48

41 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: Dan Wysocki Git and GitHub February 12, / 48

42 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: keep a personal backup Dan Wysocki Git and GitHub February 12, / 48

43 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: keep a personal backup take the project in a new direction Dan Wysocki Git and GitHub February 12, / 48

44 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: keep a personal backup take the project in a new direction make changes to the repository, which will later be merged back in Dan Wysocki Git and GitHub February 12, / 48

45 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: keep a personal backup take the project in a new direction make changes to the repository, which will later be merged back in just like branches on the same repository, branches from forked repositories may be merged via pull request Dan Wysocki Git and GitHub February 12, / 48

46 Forks a user may fork any repository they have access to, creating an independent copy the fork can be used to: keep a personal backup take the project in a new direction make changes to the repository, which will later be merged back in just like branches on the same repository, branches from forked repositories may be merged via pull request open source projects often use the fork/pull request model for accepting 3rd party contributions Dan Wysocki Git and GitHub February 12, / 48

47 GitHub Dan Wysocki Git and GitHub February 12, / 48

48 Background a proprietary hosting service for Git repositories, with added perks Dan Wysocki Git and GitHub February 12, / 48

49 Background a proprietary hosting service for Git repositories, with added perks created in 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett Dan Wysocki Git and GitHub February 12, / 48

50 Background a proprietary hosting service for Git repositories, with added perks created in 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett written in Ruby Dan Wysocki Git and GitHub February 12, / 48

51 Background a proprietary hosting service for Git repositories, with added perks created in 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett written in Ruby unlimited free hosting for public repositories Dan Wysocki Git and GitHub February 12, / 48

52 Background a proprietary hosting service for Git repositories, with added perks created in 2008 by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett written in Ruby unlimited free hosting for public repositories paid hosting for private repositories Dan Wysocki Git and GitHub February 12, / 48

53 Repositories adds additional features to normal Git repositories Dan Wysocki Git and GitHub February 12, / 48

54 Repositories adds additional features to normal Git repositories displays various statistics about each repository Dan Wysocki Git and GitHub February 12, / 48

55 Repositories adds additional features to normal Git repositories displays various statistics about each repository renders files written in the markdown markup language Dan Wysocki Git and GitHub February 12, / 48

56 Repositories adds additional features to normal Git repositories displays various statistics about each repository renders files written in the markdown markup language allows users to write comments on just about anything, from individual lines of code to pull requests Dan Wysocki Git and GitHub February 12, / 48

57 Repositories adds additional features to normal Git repositories displays various statistics about each repository renders files written in the markdown markup language allows users to write comments on just about anything, from individual lines of code to pull requests provides a wiki for each repository Dan Wysocki Git and GitHub February 12, / 48

58 Repositories adds additional features to normal Git repositories displays various statistics about each repository renders files written in the markdown markup language allows users to write comments on just about anything, from individual lines of code to pull requests provides a wiki for each repository provides an issue tracker for reporting bugs, proposing changes, and setting milestones with optional deadlines Dan Wysocki Git and GitHub February 12, / 48

59 Organizations in addition to individual users, organizations may be created Dan Wysocki Git and GitHub February 12, / 48

60 Organizations in addition to individual users, organizations may be created organizations may host free public repositories, and paid private ones Dan Wysocki Git and GitHub February 12, / 48

61 Organizations in addition to individual users, organizations may be created organizations may host free public repositories, and paid private ones members may have varying read/write permissions Dan Wysocki Git and GitHub February 12, / 48

62 Organizations in addition to individual users, organizations may be created organizations may host free public repositories, and paid private ones members may have varying read/write permissions teams of members may be created, which have permissions for specific repositories Dan Wysocki Git and GitHub February 12, / 48

63 Organizations in addition to individual users, organizations may be created organizations may host free public repositories, and paid private ones members may have varying read/write permissions teams of members may be created, which have permissions for specific repositories every organization has one or more owners, with the authority to change the permissions of every other member Dan Wysocki Git and GitHub February 12, / 48

64 GitHub Pages free static website hosting service Dan Wysocki Git and GitHub February 12, / 48

65 GitHub Pages free static website hosting service each user, organization, and repository is permitted one website Dan Wysocki Git and GitHub February 12, / 48

66 GitHub Pages free static website hosting service each user, organization, and repository is permitted one website for users and organizations, that website is hosted at <user-name>.github.io Dan Wysocki Git and GitHub February 12, / 48

67 GitHub Pages free static website hosting service each user, organization, and repository is permitted one website for users and organizations, that website is hosted at <user-name>.github.io repositories are hosted at <user-name>.github.io/<repository-name> Dan Wysocki Git and GitHub February 12, / 48

68 Walkthrough Dan Wysocki Git and GitHub February 12, / 48

69 Initialize Repo Dan Wysocki Git and GitHub February 12, / 48

70 Clone Repo $ git clone <paste url here> Cloning into 'git-demonstration'... remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. Checking connectivity... done. Dan Wysocki Git and GitHub February 12, / 48

71 Add a File in your editor of choice (which should be Emacs), create a file named test in the directory containing your repository, and write something in it Dan Wysocki Git and GitHub February 12, / 48

72 Commit Your Changes $ git add test $ git commit -m "I created a test file and wrote things in it" [master 20ab3bb] I created a test file and wrote things in it 1 file changed, 1 insertion(+) create mode test Dan Wysocki Git and GitHub February 12, / 48

73 Status Report $ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working directory clean so far, we have commited a change to our local repository Dan Wysocki Git and GitHub February 12, / 48

74 Status Report $ git status On branch master Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits) nothing to commit, working directory clean so far, we have commited a change to our local repository we have yet to change the remote repository (hosted on GitHub) Dan Wysocki Git and GitHub February 12, / 48

75 Pushing Local to Remote $ git push origin master Username for ' dwysocki Password for ' Counting objects: 3, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 316 bytes 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To cb687c8..20ab3bb master -> master Dan Wysocki Git and GitHub February 12, / 48

76 Status Report $ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean now the remote and local repositories are in sync Dan Wysocki Git and GitHub February 12, / 48

77 Commit History Dan Wysocki Git and GitHub February 12, / 48

78 Viewing Previous Commits copy the initial commit s ID $ git checkout <paste ID here> HEAD is now at cb687c8... Initial commit Dan Wysocki Git and GitHub February 12, / 48

79 Viewing Previous Commits copy the initial commit s ID $ git checkout <paste ID here> HEAD is now at cb687c8... Initial commit now you should notice that test is gone Dan Wysocki Git and GitHub February 12, / 48

80 Viewing Previous Commits copy the initial commit s ID $ git checkout <paste ID here> HEAD is now at cb687c8... Initial commit now you should notice that test is gone we have reverted to a previous commit Dan Wysocki Git and GitHub February 12, / 48

81 Returning to Latest Commit $ git checkout master Previous HEAD position was cb687c8... Initial commit Switched to branch 'master' Your branch is up-to-date with 'origin/master'. Dan Wysocki Git and GitHub February 12, / 48

82 Pulling Remote Changes say another person on your team edited a file Dan Wysocki Git and GitHub February 12, / 48

83 Pulling Remote Changes say another person on your team edited a file to sync the updated remote with your local repository, simply pull Dan Wysocki Git and GitHub February 12, / 48

84 Pulling Remote Changes $ git pull origin master remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From * branch master -> FETCH_HEAD 20ab3bb..dcbd46c master -> origin/master Updating 20ab3bb..dcbd46c Fast-forward other_persons_file file changed, 1 insertion(+) create mode other_persons_file Dan Wysocki Git and GitHub February 12, / 48

85 Handling Conflicts say another person on your team edited a file, which you have also edited Dan Wysocki Git and GitHub February 12, / 48

86 Handling Conflicts say another person on your team edited a file, which you have also edited both of you made these changes at the same time Dan Wysocki Git and GitHub February 12, / 48

87 Handling Conflicts say another person on your team edited a file, which you have also edited both of you made these changes at the same time the person who pushes first is none the wiser Dan Wysocki Git and GitHub February 12, / 48

88 Handling Conflicts say another person on your team edited a file, which you have also edited both of you made these changes at the same time the person who pushes first is none the wiser the person who pushes second must deal with a merge conflict Dan Wysocki Git and GitHub February 12, / 48

89 Handling Conflicts $ git add test $ git commit -m "Here goes" [master a20e398] Here goes 1 file changed, 3 insertions(+), 1 deletion(-) $ git push origin master To [rejected] master -> master (fetch first) error: failed to push some refs to ' hint: Updates were rejected because the remote contains work t hint: not have locally. This is usually caused by another repo hint: to the same ref. You may want to first integrate the rem hint: (e.g., 'git pull...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' Dan Wysocki Git and GitHub February 12, / 48

90 Handling Conflicts $ git pull origin master remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From * branch master -> FETCH_HEAD dcbd46c..db8b662 master -> origin/master Auto-merging test CONFLICT (content): Merge conflict in test Automatic merge failed; fix conflicts and then commit the resu Dan Wysocki Git and GitHub February 12, / 48

91 Handling Conflicts Dan Wysocki Git and GitHub February 12, / 48

92 Handling Conflicts $ git add test $ git commit -m "That'll show em" [master 9af49d0] That'll show em $ git push origin master Counting objects: 6, done. Delta compression using up to 2 threads. Compressing objects: 100% (6/6), done. Writing objects: 100% (6/6), 567 bytes 0 bytes/s, done. Total 6 (delta 3), reused 0 (delta 0) To db8b662..9af49d0 master -> master Dan Wysocki Git and GitHub February 12, / 48

93 Branches to avoid this headache, we can work in separate branches $ git checkout -b my-branch Switched to a new branch 'my-branch' $ git push origin my-branch Total 0 (delta 0), reused 0 (delta 0) To * [new branch] my-branch -> my-branch Dan Wysocki Git and GitHub February 12, / 48

94 Branches now make some changes to your new branch, and push $ git add test $ git commit -m "Making changes on my-branch" [my-branch d22de3d] Making changes on my-branch 1 file changed, 2 insertions(+) $ git push origin my-branch Counting objects: 3, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 347 bytes 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To 9af49d0..d22de3d my-branch -> my-branch Dan Wysocki Git and GitHub February 12, / 48

95 Merging we can now directly merge my-branch with master (don t do this with branches shared by multiple people, we ll see why) $ git checkout master $ git merge my-branch Updating 9af49d0..d22de3d Fast-forward test file changed, 2 insertions(+) $ git push origin master Dan Wysocki Git and GitHub February 12, / 48

96 Pull Requests when we want to merge our changes with the project s master branch, it is a good idea to consult with the rest of your group Dan Wysocki Git and GitHub February 12, / 48

97 Pull Requests when we want to merge our changes with the project s master branch, it is a good idea to consult with the rest of your group keeps the group informed Dan Wysocki Git and GitHub February 12, / 48

98 Pull Requests when we want to merge our changes with the project s master branch, it is a good idea to consult with the rest of your group keeps the group informed gives them a chance to review your changes and suggest revisions Dan Wysocki Git and GitHub February 12, / 48

99 Pull Requests when we want to merge our changes with the project s master branch, it is a good idea to consult with the rest of your group keeps the group informed gives them a chance to review your changes and suggest revisions also allows people outside your group to submit changes, while leaving the group with the final decision to accept or reject those changes Dan Wysocki Git and GitHub February 12, / 48

100 Pull Requests make a new branch, make some changes to it, and push them as before, but don t merge with master $ git checkout -b new-feature $ echo "Words words words words" > new-file $ git add new-file $ git commit -m "Adding new file" $ git push origin new-feature Dan Wysocki Git and GitHub February 12, / 48

101 Pull Requests make a new branch, make some changes to it, and push them as before, but don t merge with master $ git checkout -b new-feature $ echo "Words words words words" > new-file $ git add new-file $ git commit -m "Adding new file" $ git push origin new-feature now open your repository s web page on GitHub Dan Wysocki Git and GitHub February 12, / 48

102 Pull Requests Dan Wysocki Git and GitHub February 12, / 48

103 Pull Requests Dan Wysocki Git and GitHub February 12, / 48

104 Pull Requests Dan Wysocki Git and GitHub February 12, / 48

105 Forks create your own copy of another repository Dan Wysocki Git and GitHub February 12, / 48

106 Forks create your own copy of another repository has the benefits of working on separate branches, but with complete independence Dan Wysocki Git and GitHub February 12, / 48

107 Forks create your own copy of another repository has the benefits of working on separate branches, but with complete independence you may create a pull request between your fork and the original repository Dan Wysocki Git and GitHub February 12, / 48

108 Forks create your own copy of another repository has the benefits of working on separate branches, but with complete independence you may create a pull request between your fork and the original repository this is how many open source projects accept contributions Dan Wysocki Git and GitHub February 12, / 48

109 Forks create your own copy of another repository has the benefits of working on separate branches, but with complete independence you may create a pull request between your fork and the original repository this is how many open source projects accept contributions large projects in general benefit from using this model over branches, as it restricts who can directly edit the main project, allowing for code review Dan Wysocki Git and GitHub February 12, / 48

110 Forks let s go fork 2048: Dan Wysocki Git and GitHub February 12, / 48

111 Forks make some changes to the fork Dan Wysocki Git and GitHub February 12, / 48

112 Forks make some changes to the fork create a pull request on the original repository Dan Wysocki Git and GitHub February 12, / 48

113 Forks make some changes to the fork create a pull request on the original repository don t actually submit it if it s not serious Dan Wysocki Git and GitHub February 12, / 48

114 Other GitHub Features feature rich issue tracker Dan Wysocki Git and GitHub February 12, / 48

115 Other GitHub Features feature rich issue tracker anybody may submit issues and comment Dan Wysocki Git and GitHub February 12, / 48

116 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues Dan Wysocki Git and GitHub February 12, / 48

117 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline Dan Wysocki Git and GitHub February 12, / 48

118 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown Dan Wysocki Git and GitHub February 12, / 48

119 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form Dan Wysocki Git and GitHub February 12, / 48

120 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax Dan Wysocki Git and GitHub February 12, / 48

121 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax all comments, READMEs, and issues are rendered in markdown Dan Wysocki Git and GitHub February 12, / 48

122 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax all comments, READMEs, and issues are rendered in markdown GitHub Pages allows any repository to have its own website Dan Wysocki Git and GitHub February 12, / 48

123 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax all comments, READMEs, and issues are rendered in markdown GitHub Pages allows any repository to have its own website create a branch named gh-pages Dan Wysocki Git and GitHub February 12, / 48

124 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax all comments, READMEs, and issues are rendered in markdown GitHub Pages allows any repository to have its own website create a branch named gh-pages by default, GitHub assumes this repository contains source code for Jekyll, a static site generator, and will compile it for you Dan Wysocki Git and GitHub February 12, / 48

125 Other GitHub Features feature rich issue tracker anybody may submit issues and comment people may be assigned to issues milestones allow issues to be grouped together with an optional deadline GitHub flavored markdown (GFM) is an extension of the simple language markdown markdown s philosophy is to have plain text source code, which looks close to its compiled form GFM adds syntax highlighting, as well as allowing you to reference users, repositories, commits, issues, and more, with a simple syntax all comments, READMEs, and issues are rendered in markdown GitHub Pages allows any repository to have its own website create a branch named gh-pages by default, GitHub assumes this repository contains source code for Jekyll, a static site generator, and will compile it for you if you just want to give it plain HTML, just add an empty file to your repository named.nojekyll Dan Wysocki Git and GitHub February 12, / 48

126 Useful Links github tutorial Dan Wysocki Git and GitHub February 12, / 48

127 Useful Links github tutorial git game Dan Wysocki Git and GitHub February 12, / 48

128 Questions Any questions? Dan Wysocki Git and GitHub February 12, / 48

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development;

What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; What is git? Distributed Version Control System (VCS); Created by Linus Torvalds, to help with Linux development; Why should I use a VCS? Repositories Types of repositories: Private - only you and the

More information

Getting started with GitHub

Getting started with GitHub Getting started with GitHub A beginner s guide. (There s no code in this slide deck!) Presented by Quinn Supplee https://github.com/quinns What is GitHub? GitHub is a code hosting platform for version

More information

Git for Newbies. ComMouse Dongyue Studio

Git for Newbies. ComMouse Dongyue Studio Git for Newbies ComMouse Dongyue Studio 2018.4.25 Contents What is Git? Git Quick Start Git Branch Git Workflow Git in Practice What is Git? What is Git? A Version Control System (VCS) An Open-sourced

More information

Effective Programming Practices for Economists. 7. Version Control, Part II: Git with a Shared Repository

Effective Programming Practices for Economists. 7. Version Control, Part II: Git with a Shared Repository Effective Programming Practices for Economists 7. Version Control, Part II: Git with a Shared Repository Hans-Martin von Gaudecker Department of Economics, Universität Bonn Collaboration Science in general

More information

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017 GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created

More information

Online Remote Repositories

Online Remote Repositories Online Remote Repositories GitHub and Bitbucket centralized Git repositories for dissemination and collaboration Barry Grant bjgrant@umich.edu http://thegrantlab.org Recap: Client-Server vs Distributed

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master... Table of Contents Getting the files for the first time...2 Making Changes, Commiting them and Pull Requests:...5 Update your repository from the upstream master...8 Making a new branch (for leads, do this

More information

Software Project (Lecture 4): Git & Github

Software Project (Lecture 4): Git & Github Software Project (Lecture 4): Git & Github Wouter Swierstra, Atze Dijkstra Feb 2016 Wouter Swierstra, Atze Dijkstra Software Project (Lecture 4): Git & Github Feb 2016 1 / 45 Wouter Swierstra, Atze Dijkstra

More information

CS 390 Software Engineering Lecture 5 More Git

CS 390 Software Engineering Lecture 5 More Git CS 390 Software Engineering Lecture 5 More Git Reference: Scott Chacon and Ben Straub, Pro Git, published by Apress, available at https://git-scm.com/book/en/v2. Outline Finish local repository Remote

More information

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019 CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history

More information

Tips on how to set up a GitHub account:

Tips on how to set up a GitHub account: Tips on how to set up a GitHub account: 1. Go to the website https://github.com/, you will see the following page: Figure 1: The GitHub main webpage (before you create an account and sign in) Then choose

More information

Introduction to Git and Github

Introduction to Git and Github Introduction to Git and Github Computing in Optimization and Statistics: Lecture 1 Jackie Baek MIT January 10, 2017 What is git and GitHub? git is a version control system. Other version control systems

More information

Visualizing Git Workflows. A visual guide to 539 workflows

Visualizing Git Workflows. A visual guide to 539 workflows Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

More information

git the SCM system Jan-Simon Möller training.linuxfoundation.org

git the SCM system Jan-Simon Möller training.linuxfoundation.org git the SCM system Jan-Simon Möller training.linuxfoundation.org Topics What is git (what is a SCM) How to install git How to personalize git How to use git for development What is git? What is a SCM System?

More information

Version control with Git.

Version control with Git. 1 Version control with Git http://git-scm.com/book/en/ Basic Intro to Git We will: Discuss how Git differs from Subversion Discuss the basic Git model Pull/clone files from a repository on github Edit

More information

CSE 391 Lecture 9. Version control with Git

CSE 391 Lecture 9. Version control with Git CSE 391 Lecture 9 Version control with Git slides created by Ruth Anderson & Marty Stepp, images from http://git-scm.com/book/en/ http://www.cs.washington.edu/391/ 1 Problems Working Alone Ever done one

More information

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson GIT TUTORIAL Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson SCM SOFTWARE CONFIGURATION MANAGEMENT SOURCE CODE MANAGEMENT Generic term for the ability to manage multiple

More information

Git Introduction CS 400. February 11, 2018

Git Introduction CS 400. February 11, 2018 Git Introduction CS 400 February 11, 2018 1 Introduction Git is one of the most popular version control system. It is a mature, actively maintained open source project originally developed in 2005 by Linus

More information

Version Control. Version Control

Version Control. Version Control Version Control CS440 Introduction to Software Engineering John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

2 Initialize a git repository on your machine, add a README file, commit and push

2 Initialize a git repository on your machine, add a README file, commit and push BioHPC Git Training Demo Script First, ensure that git is installed on your machine, and you have configured an ssh key. See the main slides for instructions. To follow this demo script open a terminal

More information

Source Code Management wih git

Source Code Management wih git Source Code Management wih git Matthieu Herrb December 22 http://homepages.laas.fr/matthieu/cours/git.pdf Licence This work is licensed under a Creative Commons Attribution-ShareAlike 3. Unported License.

More information

Version Control Systems (VCS)

Version Control Systems (VCS) Version Control Systems (VCS) Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 13, 2016. Version Control Systems Let s get the textbook! Online

More information

Using GitHub to Share with SparkFun a

Using GitHub to Share with SparkFun a Using GitHub to Share with SparkFun a learn.sparkfun.com tutorial Available online at: http://sfe.io/t52 Contents Introduction Gitting Started Forking a Repository Committing, Pushing and Pulling Syncing

More information

Github/Git Primer. Tyler Hague

Github/Git Primer. Tyler Hague Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with

More information

USPAS Simulation of Beam and Plasma Systems Steven M. Lund, Jean-Luc Vay, Remi Lehe, Daniel Winklehner and David L. Bruhwiler Lecture: Software Version Control Instructor: David L. Bruhwiler Contributors:

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion API Working Group Meeting, Harris County, TX March 22-23, 2016 Policies and Procedures Discussion Developing a Mission Statement What do we do? How do we do it? Whom do we do it for? What value are we

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

Windows. Everywhere else

Windows. Everywhere else Git version control Enable native scrolling Git is a tool to manage sourcecode Never lose your coding progress again An empty folder 1/30 Windows Go to your programs overview and start Git Bash Everywhere

More information

CS314 Software Engineering Configuration Management

CS314 Software Engineering Configuration Management CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.

More information

Revision Control and GIT

Revision Control and GIT Revision Control and GIT On UD HPC Community Clusters William Totten Network & Systems Services Why use revision control You can go back in time It makes it easy to try things out which might not work

More information

Version Control System - Git. zswu

Version Control System - Git. zswu Version Control System - Git zswu Overview Why VCS? Why Git? Using Git Personally Using Git with Others Etiquette Rules of Using Git Tools & Services Tips 2 Why VCS (1/3) How do you manage your homework?

More information

Git for Version Control

Git for Version Control Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from http://git-scm.com/book/en/ http://www.cs.washington.edu/403/ About

More information

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014

EECS 470 Lab 4. Version Control System. Friday, 31 st January, 2014 EECS 470 Lab 4 Version Control System Department of Electrical Engineering and Computer Science College of Engineering University of Michigan Friday, 31 st January, 2014 (University of Michigan) Lab 4:

More information

Distributed Version Control

Distributed Version Control Distributed Version Control David Grellscheid 2014-03-17 Workshop on Advanced Techniques for Scientific Programming and Management of Open Source Software Packages 10 21 March 2014 Version management In

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Tutorial 2 GitHub Tutorial

Tutorial 2 GitHub Tutorial TCSS 360: Software Development Institute of Technology and Quality Assurance Techniques University of Washington Tacoma Winter 2017 http://faculty.washington.edu/wlloyd/courses/tcss360 Tutorial 2 GitHub

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

Code and data management with Git

Code and data management with Git Code and data management with Git Git and remote repositories Jonathan K. Vis Department of Human Genetics Remote repositories Table of contents Remote repositories Transferring commits between repositories

More information

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47

Working with GIT. Florido Paganelli Lund University MNXB Florido Paganelli MNXB Working with git 1/47 Working with GIT MNXB01 2017 Florido Paganelli Lund University florido.paganelli@hep.lu.se Florido Paganelli MNXB01-2017 - Working with git 1/47 Required Software Git - a free and open source distributed

More information

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France [Software Development] Development Tools Davide Balzarotti Eurecom Sophia Antipolis, France Version Control Version (revision) control is the process of tracking and recording changes to files Most commonly

More information

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 320 Introduction to Software Engineering Spring February 06, 2017 CS 320 Introduction to Software Engineering Spring 2017 February 06, 2017 Recap: Software development process models Traditional models Waterfall model Iterative and incremental Prototyping Spiral model

More information

Review Version Control Concepts

Review Version Control Concepts Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.

More information

Revision control. INF5750/ Lecture 2 (Part I)

Revision control. INF5750/ Lecture 2 (Part I) Revision control INF5750/9750 - Lecture 2 (Part I) Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same

More information

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at: Welcome! Virtual tutorial will start at 15:00 GMT Please leave feedback afterwards at: www.archer.ac.uk/training/feedback/online-course-feedback.php Introduction to Version Control (Part 2) ARCHER Virtual

More information

AIS Grid School 2015

AIS Grid School 2015 Getting distributed without losing your HEAD AIS Grid School 2015 Дубна, Россия 3 e Oктября 2015 Benjamin Wolff (CERN / GS-AIS) Logo source: http://git-scm.com/downloads/logos What is a Version Control

More information

FEEG Applied Programming 3 - Version Control and Git II

FEEG Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Richard Boardman, Sam Sinayoko 2016-10-19 Outline Learning outcomes Working with a single repository (review) Working with multiple versions

More information

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

GIT tutorial. David Parsons, Soraya Arias, Thomas Calmant November, Preamble 2

GIT tutorial. David Parsons, Soraya Arias, Thomas Calmant November, Preamble 2 GIT tutorial David Parsons, Soraya Arias, Thomas Calmant November, 2017 Contents 1 Preamble 2 2 First steps 2 2.1 Basic configuration.......................................... 2 2.2 Create your very first

More information

Project Management. Overview

Project Management. Overview Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1 What is Project Management? Effective

More information

Git, the magical version control

Git, the magical version control Git, the magical version control Git is an open-source version control system (meaning, it s free!) that allows developers to track changes made on their code files throughout the lifetime of a project.

More information

How to git with proper etiquette

How to git with proper etiquette How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit

More information

CSCI 1010 Computer Science Orientation Introduction to version control

CSCI 1010 Computer Science Orientation Introduction to version control CSCI 1010 Computer Science Orientation Introduction to version control Our activity for today Our activity for today will focus on the following learning objectives: Getting experience editing html. Getting

More information

How to be a git. Dominic Mitchell

How to be a git. Dominic Mitchell How to be a git Dominic Mitchell Git! It s new! Everybody s talking about it! What is it? Distributed Version Control Why Git? Fast Local Toolkit Widely used Github Toolkit lets other people build tools

More information

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple

More information

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in

More information

b. Developing multiple versions of a software project in parallel

b. Developing multiple versions of a software project in parallel Multiple-Choice Questions: 1. Which of these terms best describes Git? a. Integrated Development Environment b. Distributed Version Control System c. Issue Tracking System d. Web-Based Repository Hosting

More information

Git. Presenter: Haotao (Eric) Lai Contact:

Git. Presenter: Haotao (Eric) Lai Contact: Git Presenter: Haotao (Eric) Lai Contact: haotao.lai@gmail.com 1 Acknowledge images with white background is from the following link: http://marklodato.github.io/visual-git-guide/index-en.html images with

More information

Tizen/Artik IoT Practice Part 4 Open Source Development

Tizen/Artik IoT Practice Part 4 Open Source Development 1 Tizen/Artik IoT Practice Part 4 Open Source Development Sungkyunkwan University Contents 2 SCM Tool: Git Version Management Local & Remote Repository Branch Management Github Contribution Process Issue

More information

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng GIT CS 490MT/5555, Spring 2017, Yongjie Zheng GIT Overview GIT Basics Highlights: snapshot, the three states Working with the Private (Local) Repository Creating a repository and making changes to it Working

More information

Git(Lab) Tutorial and Hands-On

Git(Lab) Tutorial and Hands-On Git(Lab) Tutorial and Hands-On Analysis Workshop 34th KATRIN Collaboration Meeting Institut für Kernphysik WWU Münster 21.02.2018 Git(Lab) Tutorial and Hands-On Or: Why branches aren t homeomorphic endofunctors

More information

Software Revision Control for MASS. Git Basics, Best Practices

Software Revision Control for MASS. Git Basics, Best Practices Software Revision Control for MASS Git Basics, Best Practices Matthew Sell, CSSE Student MASS Research Participant, February 2014 What is revision control? The obligatory Wikipedia definition: revision

More information

Fundamentals of Git 1

Fundamentals of Git 1 Fundamentals of Git 1 Outline History of Git Distributed V.S Centralized Version Control Getting started Branching and Merging Working with remote Summary 2 A Brief History of Git Linus uses BitKeeper

More information

クラウド開発演習 ( 課題解決型学習 ) Project-/Problem-Based Learning on Cloud Computing

クラウド開発演習 ( 課題解決型学習 ) Project-/Problem-Based Learning on Cloud Computing クラウド開発演習 ( 課題解決型学習 ) Project-/Problem-Based Learning on Cloud Computing ソフトウェア クラウド開発プロジェクト実践 I 浅井大史 2016 年 4 月 15 日 クラウド実践工房 2 Cloud Service Models: X as a Service SaaS Software as a Service Google Apps,

More information

Version Control for Fun and Profit

Version Control for Fun and Profit Version Control for Fun and Profit Chris Brady Heather Ratcliffe The Angry Penguin, used under creative commons licence from Swantje Hess and Jannis Pohlmann. Warwick RSE 30/11/2017 Version control 30/11/2017

More information

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison

Version control. with git and GitHub. Karl Broman. Biostatistics & Medical Informatics, UW Madison Version control with git and GitHub Karl Broman Biostatistics & Medical Informatics, UW Madison kbroman.org github.com/kbroman @kwbroman Course web: kbroman.org/tools4rr Slides prepared with Sam Younkin

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now

Version Control. Software Carpentry Github s Hello World Git For Ages 4 And Up You need source code control now A version control system (VCS) is a tool or system for keeping track of changes in files. A primitive form of VCS would be making a copy of a file every time you want to make a new version of the file.

More information

Branching and Merging

Branching and Merging Branching and Merging SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Version control branching supports the ability to manage software

More information

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

Lab 08. Command Line and Git

Lab 08. Command Line and Git Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize

More information

G E T T I N G S TA R T E D W I T H G I T

G E T T I N G S TA R T E D W I T H G I T G E T T I N G S TA R T E D W I T H G I T A A R O N H O O V E R & B R A D M I N C H J A N U A R Y 2 2, 2 0 1 8 1 Why use a version control system? Much of this document was blatantly cribbed from Allen

More information

M E R C U R I A L (The Source Control Management)

M E R C U R I A L (The Source Control Management) M E R C U R I A L (The Source Control Management) Jamshaid Iqbal Janjua, Shahid Awan jamshaid.janjua@kics.edu.pk shahidawan@kics.edu.pk Al-Khawarizmi Institute of Computer Science University of Engineering

More information

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

Make sure to mark it private. Make sure to make it a Mercurial one and not a Git one.

Make sure to mark it private. Make sure to make it a Mercurial one and not a Git one. Go to bitbucket.org - make an account. Make sure to use your.edu email address so that you get a free unlimited account. In bitbucket, create a repository. Make sure to mark it private. Make sure to make

More information

Version Control. Version Control. Human Version Control. Version Control Systems

Version Control. Version Control. Human Version Control. Version Control Systems Version Control Version Control Any large, useful software system... will undergo many changes in its lifetime multiple programmers making changes who may work on the code concurrently and independently

More information

Version Control. Version Control

Version Control. Version Control Version Control Prepared for CS 342 - Software Design by John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM) Overview Project Management How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 What is Project Management? Effective

More information

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2 Git Git 1 Topics covered Introduction to Git Git workflows Git key concepts Hands on session Branching models Git 2 Introduction to Git Git 3 Version control systems The source files of a project changes

More information

Git tutorial. Katie Osterried C2SM. October 22, 2015

Git tutorial. Katie Osterried C2SM. October 22, 2015 Git tutorial Katie Osterried C2SM October 22, 2015 Outline 1 What is Git and why are we switching? 2 Working with Git 3 Branching and Merging 4 Working with remote repositories 5 Recommendations Outline

More information

Version control CSE 403

Version control CSE 403 Version control CSE 403 Goals of a version control system Keep a history of your work Explain the purpose of each change Checkpoint specific versions (known good state) Recover specific state (fix bugs,

More information

COSC345 Software Engineering. Version Control

COSC345 Software Engineering. Version Control COSC345 Software Engineering Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS RCS Subversion

More information

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1

Creating a Patch. Created by Carl Heymann on 2010 Sep 14 1 Created by on 2010 Sep 14 1 1. Starting a Patch To create a patch, and get it through the review process and into a main branch of a project, you can follow the following steps: Clone the project if you

More information

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018 Introduction to Git Database Systems DataLab, CS, NTHU Spring, 2018 1 Outline Version control system Git basics Git branch Remote repository 2 Outline Version control system Git basics Git branch Remote

More information

Submitting your Work using GIT

Submitting your Work using GIT Submitting your Work using GIT You will be using the git distributed source control system in order to manage and submit your assignments. Why? allows you to take snapshots of your project at safe points

More information

Git for Subversion users

Git for Subversion users Git for Subversion users Zend webinar, 23-02-2012 Stefan who? Stefan who? Freelancer: Ingewikkeld Stefan who? Freelancer: Ingewikkeld Symfony Community Manager Stefan who? Freelancer: Ingewikkeld Symfony

More information

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Git 101: Overview 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Github icon 1 Install git and a create GitHub

More information

Version Control System GIT

Version Control System GIT Version Control System GIT Version Contol System Version (revision) control systems are software that help you track changes you make in your code over time. As you edit to your code, you tell the version

More information

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP

Git Guide. Meher Krishna Patel. Created on : Octorber, 2017 Last updated : October, More documents are freely available at PythonDSP Git Guide Meher Krishna Patel Created on : Octorber, 2017 Last updated : October, 2018 More documents are freely available at PythonDSP Table of contents Table of contents i 1 Commands Summary 1 2 Git

More information

Effective Software Development and Version Control

Effective Software Development and Version Control Effective Software Development and Version Control Jennifer Helsby, Eric Potash Computation for Public Policy Lecture 5: January 19, 2016 computationforpolicy.github.io Announcements Do look at the readings

More information

So#ware(Project. Lecture'4. Wouter'Swierstra. So#ware(project( (Lecture(4 1

So#ware(Project. Lecture'4. Wouter'Swierstra. So#ware(project( (Lecture(4 1 So#ware(Project Lecture'4 Wouter'Swierstra So#ware(project( (Lecture(4 1 Last%&me Risks So(ware-architecture So#ware(project( (Lecture(4 2 Working(effec,vely(with(git(and(GitHub. So#ware(project( (Lecture(4

More information

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic - basics Matthäus Zloch GESIS Outline for this session Git introduction and some theory Git command basics (plus some little advanced)

More information

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani -

KTH Royal Institute of Technology SEMINAR 2-29 March Simone Stefani - KTH Royal Institute of Technology SEMINAR 2-29 March 2017 Simone Stefani - sstefani@kth.se WHAT IS THIS SEMINAR ABOUT Branching Merging and rebasing Git team workflows Pull requests and forks WHAT IS THIS

More information

Version Control with GIT

Version Control with GIT Version Control with GIT Benjamin Roth CIS LMU München Benjamin Roth (CIS LMU München) Version Control with GIT 1 / 30 Version Control Version control [...] is the management of changes to documents, computer

More information