Kurzer Überblick, bei folgendem Setup:
Auf dem Server gibt's den User "git", der sich via ssh mit Zertifikat verbinden kann. In dessen home liegen alle Repositories.
Der Server sei hier "myserver.com" genannt, der ssh Port sei 12345.
Eingeloggt als root auf dem
Server (als User git eingeloggt fällt das "su" weg):
su git
mkdir test.git
cd test.git
git --bare init
exit
Somit ist das leere repo am Server angelegt.
Danach bei mir
lokal in einem Ordner, in dem ich schon ein wenig gecodet habe:
git init
git add testfile.txt
git commit -m 'added one testfile'
git remote add origin ssh://git@myserver.com:12345/home/git/test.git
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
git push origin master
Gesetzt den Fall, dass das Repository zusätzlich zu ssh noch über http(s) zur Verfügung gestellt wird, auf dem
Server:
su git
cd test.git
echo "Repo description, (something useful)" > description
cd hooks/
mv post-update.sample post-update
git update-server-info
exit