Git

You actually don’t need a software package like github or gitlab to host your own repositories, if the command line is good enough for you, all you need is git itself and a remote machine that you can ssh into.

You simply

git init --bare

on the host and on the local you

git init

and then set the remote location with

git remote set-url remoteip:path/to/repo

then you can push from local with

git push --set-upstream origin master

and then you’re set and can use it normally from your command line.