Skip to article frontmatterSkip to article content

Git

Git is a version control system that helps you track changes in your files and collaborate with others. It allows you to save different versions of your work, go back to previous versions if needed, and merge changes from multiple people. Git is commonly used for managing source code in software projects, but it can be used for any type of file.

Git provides thus a way to synchronize files between a server and local stored files. Other servers can host the webpage (the Jupyter Book) by requesting the files and utilizing a build script.

Both GitHub and GitLab provide an online integrated development environment: an online version of VSC. This approach (coding in the online IDE) is advised for those new to git, python, and programming.

Below is a description of both GitHub and GitLab - TU Delft and subsequently an oversight of the (dis)advantages of each these systems. Know that we are able to connect these two (synchronize between them).

GitHub

GitHub is a web-based platform for hosting and collaborating on Git repositories. Owned by Microsoft, GitHub offers tools for code review, issue tracking, and project management, making it popular for open-source and private projects alike. One valuable feature is GitHub Pages, which allows you to publish static websites directly from a repository, making it easy to share documentation, portfolios, or project pages.

Gitlab

TU Delft hosts a local server with GitLab software, which is an implementation of git with a lot of useful extensions. Anyone with a TU Delft netid can get a GitLab account, simply by logging in on https://gitlab.tudelft.nl. You can then be added to projects or start your own project.[1]

Git desktop

GitHub Desktop is a graphical application that simplifies working with Git repositories, making it easier to synchronize your files with platforms like GitHub or GitLab. Instead of using command-line instructions, you can perform common tasks—such as committing changes, pushing to remote repositories, and resolving merge conflicts—through an intuitive interface. This is especially helpful for beginners or those who prefer a visual workflow.

Alternatively, Visual Studio Code (VSC) includes built-in Git functionality. With VSC, you can stage, commit, and push changes directly from the editor, view diffs, and manage branches without leaving your coding environment. This integration streamlines your workflow and reduces the need to switch between multiple tools.

Comparing the two versions of git

GitHub and GitLab have both advantages and disadvantages. GitLab is advised by TUD unless many external users are involved. However, as GitLab disable pages a Jupyter Book should be build locally.

proscons
GithubGitHub pages enables to see content in websiteIs property of MicroSoft
Allows users out side TUD to easily engageNo backup at TUD
Github actionsNot standard reachable by TUD (i.c.o. conflicts, e.g. copyrights)
Massive storage
GitlabIs hosted by TUDIs terminated when one leaves TUD
Accessible by colleaguesHarder for outside collaborators
CI/CDPages disabled
Storage limited by TUDVarious faculties have their own GL and policies
TUD BackupsIs more often down compared to GitHub
Footnotes
  1. Text from Idema (2023)

References
  1. Idema, T. (2023). Jupyter Open Textbook: demo book. TU Delft OPEN Publishing. 10.59490/tb.73