When 7, 8, 9, 10 October 2024 (third edition)
Where Delft University of Technology
Who, the instructors Halford Dace, Carlos Utrilla Guerrero, Manuel Garcia Alvarez
Who, the helpers Elviss Dvinskis, Joao Guimaraes, Richard Grimes
Each day we follow the following routine. The time slots are not tied to the rolling out of self-contained topics.
13:00 | 13:50 | 14:00 | 14:50 | 15:10 | 15:00 | 16:10 | 17:00 | 17:10 |
---|---|---|---|---|---|---|---|---|
Teaching 50' | Break 10' | Teaching 50' | Break 20' | Teaching 50' | Break 10' | Teaching 50' | Wrap-up 10' | Closure |
The workshop is divided into 4 Lessons, each given in one half a day. Each Lesson is further divided into Episodes, and then into Chapters. Unfold the detailed tables of contents in the listing below.
L1. FUNDAMENTAL OPERATIONS WITH GIT
Episode | Topic |
---|---|
1.1 | Git repositories for version control |
Introduction to Git | |
Git command syntax and getting help | |
Creating an empty repository | |
1.2 | Tracking changes in working documents |
Tracking changes with the index | |
Not tracking and stop tracking | |
Undoing changes with the index | |
Deleting and renaming tracked files and directories | |
1.3 | Organising tracked changes in a history |
Committing changes with a configured identity and a message | |
Inspecting changes using the history | |
Undoing changes with the history | |
Marking the history using tags |
L2. BRANCHING AND REMOTE OPERATIONS
Episode | Topic |
---|---|
2.1 | Branching |
--- | Create, rename, change, and delete branches |
--- | Develop and compare branches |
--- | Visualise and merge branches and resolve conflicts |
2.2 | Operations with remotes |
--- | Create a bare repositories |
--- | Cloning and pushing to upstreams |
--- | Syncing changes between repositories |
L3. COLLABORATIVE SOFTWARE DEVELOPMENT
Episode | Topic |
---|---|
3.1 | Collaborative Platforms |
--- | Connecting to code repositories |
--- | Exploring the GitHub GUI |
--- | Collaborating |
3.2 | Collaborative Development for Research Software |
--- | Introduction to collaboration in software projects |
--- | Managing research software projects |
--- | Organising research teams for collaborative development |
3.3 | Collaborative Workflows |
--- | Documenting issues |
--- | Centralise workflow: branching |
--- | Pull requests |
--- | Shared workflow: forking |
L4. COLLABORATIVE SOFTWARE DEVELOPMENT (to be composed)
Episode | Topic |
---|---|
4.1 | Managing collaboration |
--- | Code Reviews |
--- | Contributing Guidelines |
4.2 | Licensing and Citation |
--- | Open Source Licenses |
--- | Software Citation |
4.3 | Releasing Software |
--- | Semantic Versioning |
--- | Software Releases |
This respository contains the type-along logs for the class. You will find the logs of every command the instructors type for lessons 1 and 2 in the files below. Both of these files will be empty at the start of the class, and will fill up as the day progresses. They are useful if you find yourself needing to catch up at some poing, or want to review what was done after the course.
The commands the instructors type on the screen during each lesson will be appended continuously to the documents 1esson[12].* (the file extension may vary).
Please use these lesson notes when you had to lag behind the instructor and need to catch up with the instructions.
Please refresh the page with the lesson notes in your browser (typically, hit F5
).
So, you will view the latest commands as the notes grow.
Kindly notify the instructor if you do not see this happening.
Please bookmark these URLs for an easy navigation during the workshop:
- Full URL of this page: https://github.com/4TUResearchData-Carpentries/2024-10-07-gitcodev
- https://www.git-scm.com/docs/
- Short videos (4-8'): https://www.git-scm.com/videos
- Reference manual for commands: https://www.git-scm.com/docs
- General features: https://www.git-scm.com/about
- ProGit book (505 pages, open access, with full and partial translations in other languages): https://www.git-scm.com/book
- Please explore this website.
- https://swcarpentry.github.io/git-novice/01-basics.html
- This is the Software Carpentries lesson on git, which we use as an introductory-level course at TU Delft. It includes nice notes on Automated Version Control, what it's for and why we use it.
- GitHub documentation
- Also Git has a GitHub account with several repositories
- Also Linus Torvalds has a GitHub account with many repositories
- Peer-reviewed article: Five reasons why researchers should learn to love the command line (J.M. Perkel, 2 Feb 2021)
- Blog: How to undo almost everything in Git (J. Wehner, 8 June 2015)
- Blog: How to write a Git commit message (cbeams, 31 Aug 2014)
- Blog: Ignoring Files and Directories in Git (.gitignore) (Linuxize, 25 July 2020)
- Cartoons:
This course has been designed, developed by Manuel Garcia Alvarez and Giordano Lipari, and delivered by Halford Dace, Carlos Utrilla Guerrero, and Manuel Garcia.
This work is licensed under a Creative Commons Attribution 4.0 International License in accordance with the Vision for Research Data & Software management training at TU Delft.