You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.0 KiB

Git

Git is probably the best version control system (VCS) there is. It's easy and can be lightweight, but also has tons of possibilities for using graphical (/web) user interfaces.

Setup

Git consists of two parts: a client and a server

Client

The client is pretty simple to understand. With only a handfull of commands you should be able to get your versioning going. For servers with web interfaces there are different cli tools to control it without using a browser. For most linux distributions it is packaged with the git package

There is also an interactive fixup guide by Seth Robertson.

Server

The server hosts the data that is needed for the versioning. A distinction can be made between GUI-less servers and servers with a web-GUI.

Server with web interface

Web interfaces for git are quite useful for easily showing code to other people. Additionally it is easy to collaborate together.

  • Gitea is an open-source and selfhosted and can be dockerized.
  • Github is the go to system for many people. Not selfhosted, owned by microsoft (cli-tool).

Server without graphical interface

If you don't need a bloated web-interface a more basic approach is more than enough.

Usage

This section addresses various use cases and problems solvable with git.

Ignore files having local changes

If you need to make changes to a file that are local you can run config update-index --skip-worktree <file>. Following this the file won't show up as having changes from the upstream. Note that files tagged with this command are checked out sparsly, so you need to watch out for changes yourself if there are any. To revert this run config update-index --no-skip-worktree <file>.