- Last updated: 26 08 2024
- Lecturer: @erikvansebille
- Tanja Hinderer
- Marc Schneiter
Students know how to use the tools that are commonly used in collaborative work and appreciate that creating a collaborative environment requires some effort but pays off in the end.
As physics becomes more collaborative, it is important that students can work with others effectively. Git is a powerful tool for managing changes to code and documents, and it is widely used in the physics community. By learning how to use Git in combination with Remote Hosts, students will be able to work more effectively with others, and they will be able to contribute to open-source projects.
In this lecture, the students will learn how to use Git and Remote Hosts such as GitLab or GitHub for collaborative work. They will learn how to work with branches, merge changes, and resolve conflicts. Finally, they will learn how to use GitLab (or GitHub) to collaborate with others, including how to fork a repository, create a merge request, and review changes.
Furthermore, the students will get familiar with the use of readme, templates, community rules, licensing and credit.
The (physics) research community is the main community that should be considered for the topics of this lecture. That community can be on the scale of a group project, a research group, a department, or a whole field. The students will be encouraged to think about how they can use these tools in their own research projects, and how they can use them to collaborate with others in the research community.
Topics covered in lecture
- Remote Hosts such as GitLab or GitHub, and how to use them for collaborative work
- Branches, merging, and resolving conflicts
- Pull Requests, Issues, labels, unit testing/continuous integration and code reviews
- Readme, templates, community rules, licensing and credit
During the four hours of tutorial, the students will go through the fourteen lessons of the git tutorial and will be asked to complete an exercise to demonstrate their understanding of the material.
Students will form teams of threes, each working on their own computer. Each team creates a branch on GitLab and uses it to collaboratively write a haiku poem about Open Science. Within the team, each student contributes one line from their own computer. Finally, the team creates a Merge Request, and a TA merges the file with the haiku into the master branch. The students will use the features of GitLab to manage this assignment.
At the end of the lecture, the haiku poems will be read by each team and the best one will be selected by the class.
See this template for detailed instructions on the haiku assignment.
-
Version control
- Software Carpentry's git novice course.
- Git the Simple Guide provides all the necessary commands to use git.
-
Introduction to Github
- YouTube Series Github for Poets
- GitHub Education provides additional features to students & researchers.
-
Introduction and tutorials to GitLab
-
Licensing and receiving credit
-
Best Practices for Community management
-
Project management and Getting Things Done (GTD)