Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level.

Similar presentations


Presentation on theme: "© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level."— Presentation transcript:

1 © Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level with Github:IU Barbara Hallock github@iu.edu 2/15/2016, Wells Library E165, Bloomington, IN Available from: https://scholarworks.iu.edu/dspace/handle/2022/20625

2 Agenda Introductions Basic foundations and terminology git features for group projects Demo Questions / Comments

3 Introductions Barbara Hallock, MIS SOIC alumna by way of SLIS Currently work in UITS Research Technologies Campus Bridging and Research Infrastructure unit Senior NET+ / Campus Bridging Systems Analyst

4 Agenda Introductions Basic foundations and terminology git features for group projects Demo Questions / Comments

5 Basic Foundations and Terminology – What is version control? – What is git? – What is github? – What is github:IU? – Differences between github and github:IU

6 What is version control? In its most basic form, version control enables you to create the working version of “save points” in your text- based files You’ve probably experienced a basic version of this when working with a wiki and being able to see multiple revisions on a given page, revert to an old revision, etc.

7 Image above: Version control at work, in a screenshot of a wiki page used for a group meeting agenda by my department. Each revision number is clickable to display that revision and the current revision can be forced to revert to a previous one. One common example of our need for this capability is when two people try to save edits to the page concurrently and the markdown gets messed up, making things difficult to read.

8 What is version control? This concept has been applied outside of wikis, primarily as a tool for developers to use when writing software This means more features than simply “revert to version x”

9 What is version control? Version control is NOT, however, intended to take the place of regularly backing up multiple copies (on multiple media) of your files!

10 What is git? git is one of many version control software options available We’ll get into features later One unique feature of git is that it is highly social Above: Octocat, the git mascot. Image courtesy of https://octodex.github.com/original

11 What is github? An online host especially for git repositories http://github.com A great place to find open source projects in need of contributors, for those of you out there who want to be software engineers

12 What is github? So, when we talk about git, we’re talking about the software for creating and working with a repository. When we talk about github, we’re talking about the place where you can go to access those repositories (if you’ve been given access or they are public)

13 What is github:IU? Our private version of github All the same features https://github.iu.edu - only people with IU accounts can log in and use the service https://github.iu.edu The main distinction is that you cannot make a truly “public” repository on github:IU

14 A note about Intellectual Property Students – if you write some code and host it on github:IU, that code remains your property and you are free to do with it what you will Employees – you will have signed an agreement about intellectual property you create on or with IU resources; ask your manager for clarification or email us

15 A note about Intellectual Property (2) If you would like a truly public copy of your repository from github:IU, it’s only a matter of a few steps to migrate everything over to github.com https://kb.iu.edu/d/aaye (or just search for git in the kb) https://kb.iu.edu/d/aaye

16 Agenda Introductions Basic foundations and terminology git features for group projects Demo Questions / Comments

17 git features for group projects These will primarily be useful to students who are working with code, because that’s what git is primarily intended to be used with. However, git will work with any text files you might want to do version control on, and it has a number of features that would be useful for group work that isn’t programming-based.

18 diff Shows changes between two versions of a file For you coders – a useful programming tool whether you’re working singly or in a group For you non-coders – think of this as a text-only version of MS Word’s “Track Changes”

19 Issues Great way to keep track of to-do lists for a project Can also be used for bug reporting if you’re doing code Think of it as a shared project-specific ticketing system; each issue gets one Assignee and everyone with access to the repository can view and comment on issues You can also create color-coded labels

20 Issues 2 You can also create Milestones (which are great for tracking what needs to be done by a particular due date) Then, you can filter by a number of different specific items such as Milestones, Issues, etc.

21 Branches Ok, but what if you have to have several features turned in on the same date, or multiple people working on the same (non-coding) assignment at once? Branches allow you to designate specific sub-tasks

22 Branches 2 Each git repository starts with one branch, the Master Each branch represents a line of development. This may be a section in a larger paper, or it may be a particular feature or page in a web app, or it might be a bug fix

23 Branches 3 Each branch of a repository is like its own separate version of the repository, so you can make multiple simultaneous changes without worrying about stepping on anyone’s toes When a line of development is finished, you can merge that branch back into the Master without affecting anything but the changes you made

24 Branches 4 A new branch may be appropriate for a single, tiny change (such as adding a citation to a paper), or for a much more involved one (such as implementing a new feature on a web app). The more branches you use, the less likely you are to step on someone’s toes by making a change.

25 Branches 5 You can also update a branch from the master, in case there are changes that you need to account for.

26 Merge Ok, so all those branches would be pretty useless if there weren’t a way to merge them back together The merge command incorporates changes from the selected branch from the time the branch was created back into the current version of the Master branch, while preserving the rest of it

27 Merge 2 1 1 2 2 4 4 5 5 3 3 MASTER C1 C2 C3 PAPER_TEXT E1 CITATIONS A1 APPENDICES

28 Merge 3 Best practices suggest that no changes are ever made directly to the MASTER branch; instead, make a new branch, then merge in any changes you make as often as is needed. Name your branches in a way that people who are working with you understand what they are for!

29 Forking You can fork an existing repository from git – this downloads a copy of the repository to your local machine and your github account and saves all the changes there – kind of like branches, only you don’t have access to the Master

30 Pull requests Let’s say you’ve forked a repository and made some changes to the code in it, fixing a small bug. Now, you’d like to ask the owner of the repository to consider making your changes a part of the master project. You can issue a pull request, which will give them the option to look at what you’ve changed and possibly merge it into the repository.

31 Hint, hint… Doing this sort of work on open-source projects hosted on github.com is a good way to build up your portfolio and your experience, future software engineers! Also consider uploading little projects you do for fun. On github:IU, this is most likely to be useful in a case where the Professor has put source files in one or more course repository/ies, or when group members agree to use it

32 Agenda Introductions Basic foundations and terminology git features for group projects Demo Questions / Comments

33 Demo http://try.github.com

34 Agenda Introductions Basic foundations and terminology git features for group projects Demo Questions / Comments

35 Questions / Comments? If you think of anything later, don’t hesitate to reach out to us at github@iu.edu github@iu.edu Thank you!


Download ppt "© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level."

Similar presentations


Ads by Google