Od pewnego czasu zacząłem używać git’a do kontrolowania wersji, git wyparł mercurial’a. Git okazał się dla mnie bardziej elastycznym systemem zarządzania wersjami, nie wyprze on co prawda na razie subversion’a którego używam w bardzo wielu projektach, ale jak na razie dobrze sobie radzi z loklanymi projektami. W szczególności świetnie współgra z ruby on rails, w których robię coraz więcej “szybkich” projektów.

Dzisiaj okazało się, że potrzebuję mieć zdalnego dostępu do repo (znowu lenistwo) stwierdziłem, że użyjemy git’a. Jak to zrobić ?

$$ bash> ssh example.com example:~> mkdir git example:~> cd git example:~/git/> mkdir app.git example:~/git/> cd app.git example:~/git/app.git/> git --bare init example:~/git/app.git/> ls -l total 16 -rw-r--r-- 1 1005 0 23 27 gru 20:10 HEAD drwxr-xr-x 2 1005 0 512 27 gru 20:10 branches -rw-r--r-- 1 1005 0 66 27 gru 20:10 config -rw-r--r-- 1 1005 0 58 27 gru 20:10 description drwxr-xr-x 2 1005 0 512 27 gru 20:10 hooks drwxr-xr-x 2 1005 0 512 27 gru 20:10 info drwxr-xr-x 4 1005 0 512 27 gru 20:10 objects drwxr-xr-x 4 1005 0 512 27 gru 20:10 refs example:~/git/app.git/> exit bash> cd ~/MyProj/app bash> git remote add origin ssh://example.com/~/git/app.git bash> git push origin master bash> cat .git/config [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true [remote "origin"] url = ssh://example.com/~/git/app.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master$$

Ot i wszystko, po ssh szybkie repo.