Software I like: Version control

1. Version-control software

Free and open-source version-control software includes

See Stack Overflow Developer Survey Results: 2018, 2022.

2. Version-control repositories

Repositories (forges) include

3. Git

Git can be used directly at the command line, or through a client such as Magit or VC, both for Emacs (comparisons 1, 2).

4. Github

GitHub operations can be done using git directly; using GitHub CLI (gh) at the command line; using a GitHub GUI application ( GitHub Desktop or Github Mobile; or on the Web at github.com.

4.1 Web interface

To fork a repository: navigate to it in some way (e.g., go to https://github.com/Slicer/Slicer); click on the Fork button (near the top right); probably accept the default settings; and click on Create fork. After a short time, you should find yourself looking at the forked repository, and it should appear on your GitHub home page.

To modify a repository: navigate to a file you want to modify; click on the Edit this file icon (a pencil, top right) or, equivalently, click on the down-arrow beside the icon and click on Edit in place; modify the file; and click on Commit changes.... In the dialogue that appears, specify a Commit message, being aware of any special requirements for the repository (e.g., Slicer requires that the commit message start with one of a set of tags, followed by a colon (e.g., DOC: ) followed by a space and a brief statement that starts with a capitalized imperative verb), because you may not be able to change it later. Optionally add an extended description. If you're in your own fork, keep the selection to ‘Commit directly to the main branch’, and click on Commit changes.

To submit your modifications to the original repository, click on the Pull requests tab at the top and then click on New pull request. You should see a comparison between your modified file and the original file. At the top it shows which repositories and branches are involved. The one-line commit message is shown, and if you click on ... beside it you can see the optional extended description. Check that everything looks correct, then click on Create pull request. On the page that appears, the fields for Add a title and Add a description will contain your commit message and extended description. Check again that they're correct, then scroll down, leave the Allow edits by maintainers box checked, and click on Create pull request. If you're not ready to do that, you can click on the down arrow on the button and select Create draft pull request. On the page that appears, some checks will be run (including one that checks to format of the commit message). Hopefully the checks will all pass. There will probably be messages saying Merging is blocked and Review required. Wait for someone to review the pull request.

If you want to submit another change to the same repository, there may be even after your pull request has been approved,

To delete a forked repository: open it by clicking on its name on your GitHub home page; click on the Settings tab at the top; scroll to the bottom of the page; click on Delete this repository; then go through the multiple steps of confirmation and authentication.


R. Funnell
Last modified: 2025-03-29 14:28:35