Temat: W jaki sposób korzystać z systemu kontroli wersji...
Ja tylko nie rozumiem dlaczego się uparłeś na wrzucanie na ftp i potem z udziału na serwerze commit do repozytorium.
W dużym uproszczeniu zrobił bym tak:
1. Wykonaj sobie lokalnie na komputerze środowisko deweloperskie (Serwer www, baza danych i inne).
2. Stwórz projekt w dowolnym narzędziu do kontroli wersji i wrzuć tam wykonane przez siebie pliki projektu. Pliki w zależności od systemu kontroli wersji wrzucasz do głównej gałęzi (np trunk w SVN albo master w GIT). Te pliki to twoja wersja produkcyjna.
3. W systemie kontroli wersji stwórz sobie branch dla potrzeb deweloperskich (np o nazwie dev).
4. Na swoim komputerze (przygotowanym wg pkt 1) zrób sobie checkout branch'a dev do takiego katalogu żeby aplikacja działała lokalnym serwerze www. Wykonaj konfigurację (jeżeli aplikacja takową posiada) i oznacz pliki w systemie kontroli wersji tak aby nie zostały przypadkowo przesłane.
Teraz masz podstawę do robienia aktualizacji produkcji oraz miejsce na rozwój i testowanie. Jeżeli wprowadzasz zmianę w kodzie do zawsze robisz to na branch'u "dev". Jeżeli uważasz że twoje zmiany można przesłać na produkcję to synchronizujesz branch dev z głównym i już masz zmiany które można wrzucać na produkcję.
Teraz na twój serwer nie przerzucasz plików przez ftp. Tworzysz tam sobie także kopię roboczą z systemu kontroli wersji. Jak chcesz przesłać zmiany na serwer to na swoim kompie wykonujesz commit a na serwerze zdalnym na kopii roboczej wykonujesz update.
5. Robię kopię roboczą (checkout) na serwerze zdalnym w miejscu dotychczaowego projektu.
Identycznie możesz postąpić z serwerem zdalnym testowym jak i z produkcyjnym. Takie rozwiązanie daje Ci możliwość automatycznego aktualizowania wersji. Np możesz ustawić, że serwer testowy ma aktualizować sobie kod np co 15 min albo raz na godzinę (update kopii roboczej jako skrypt w crontab). Chcesz oddać coś do testów to robisz commit a za godzinkę przesyłasz info do testerów, że można potestować na serwerze testowym.
6. Automatyzacja aktualizacji kodu na serwerach (crontab).
Taki rozwiązanie jest o tyle fajne, że możesz oddać kawałek aplikacji na testówce do przeklikania a sam na swoim kompie dorabiasz kolejne funkcjonalności. Zaznaczam jeszcze raz, że ten model pracy w bardzo dużym uproszczeniu...