Topic: Software Development
While Git is mainly thought of as a collaboration tool, there's a lot you can do with Git on your own without collaborating with other people. Many of the Git workflows (e.g., Git-flow) can be done on solo projects too. Thus, we'll focus on the skills of using Git on your own, with remotes (e.g., GitHub), and branches. In essence, you will be "collaborating with yourself," before we go through the process of collaborating with other people.
What you'll learn-and how you can apply it
- Work with branches
- Push/pull branches and incorporate changes
- Collaborating (with yourself)
This training course is for you because...
- You who want to incorporate version control and more robust collaboration methods into your workflow.
- Basic command line skills: moving to directories and creating and editing plain text files
- Install Python using Anaconda: https://www.anaconda.com/distribution/
- Please follow the Carpentries instructions for installing Git (bash): https://carpentries.github.io/workshop-template/#git. It is especially important for windows users to check off using “nano” as the default text editor. The default editor will be set to Vim, and It’ll be very difficult to explain how to save and quit over a virtual classroom.
- We will be using GitHub as a remote, so please create a GitHub account beforehand. (You may use any other Git hosting service [e.g., Bitbucket, GitLab, etc] but the class will be using GitHub)
- Software Carpentry has a nice reference/cheatsheet: http://swcarpentry.github.io/git-novice/reference
- (live online training) "Git Basics" by Daniel Chen
- (video) Git Essentials LiveLessons, Daniel Chen https://learning.oreilly.com/videos/git-essentials-livelessons/9780134655284
About your instructor
Daniel Chen, is a PhD student at Virginia Tech and holds a master's in epidemiology from Columbia University He is currently studying data science education and pedagogy in the biomedical sciences. Daniel specializes in research design, analysis and teaching scientific computing with an emphasis on R, Git, Python and Linux. Daniel is the author of Pandas for Everyone, an expansion in the Pearson series and the Python complement to R for Everyone.
The timeframes are only estimates and may vary according to how the class is progressing
- Segment 1. Creating branches (15 min)
- Segment 2. Making commits in branches (15 min)
- Segment 3. Moving around different branches (20 min)
- Break (10 min)
- Segment 4. Merging branches (15 min)
- Segment 5. Merging branches with remotes (20 min)
- Segment 6. Pull requests (aka merge requests)(15 min)
- Break (10 min)
- Segment 7. Syncing up with your remote (15 min)
- Segment 8. Multiple branches (15 min)
- Segment 9. Incorporating hot fixes (15 min)
- Segment 10. Discuss how the skills you learned directly apply to collaboration with other people (10 min)
- Course wrap-up and next steps (5 min)