Chcę spróbować odpowiedzi, która obejmuje git-flow i trzy „punkty” lub przypadki użycia, centralne repozytorium git, rozwój lokalny i maszynę produkcyjną. To nie jest dobrze przetestowane .
Daję niezwykle konkretne polecenia. Zamiast powiedzieć <your folder>
, powiem /root/git
. Jedynym miejscem, w którym zmieniam oryginalne polecenie, jest zastąpienie mojej konkretnej nazwy serwera nazwą example.com
. Wyjaśnię, że celem folderów jest odpowiednie dostosowanie. Daj mi znać o wszelkich nieporozumieniach, a ja zaktualizuję odpowiedź.
Wersja git na serwerze to 1.7.1. Serwer to CentOS 6.3 (wersja ostateczna).
Wersja git na maszynie programistycznej to 1.8.1.1. To jest Mac OS X 10.8.4.
Centralne repozytorium i maszyna produkcyjna znajdują się na tej samej maszynie.
centralne repozytorium, z którym użytkownicy svn mogą się odnosić jako „serwer”, jest skonfigurowane w następujący sposób. Mam folder, w /root/git
którym przechowuję wszystkie moje repozytoria git. Chcę utworzyć repozytorium git dla projektu, który nazywam „kwiatami”.
cd /root/git
git clone --bare flowers flowers.git
Polecenie git przekazało dwie wiadomości:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
Nie ma się o co martwić.
Na komputerze programistycznym jest skonfigurowany w następujący sposób. Mam folder, w /home/kinjal/Sites
którym umieszczam wszystkie moje projekty. Chcę teraz uzyskać centralne repozytorium git.
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
To prowadzi mnie do punktu, w którym mogę zacząć dodawać do niego różne rzeczy. Najpierw skonfigurowałem Git Flow
git flow init -d
Domyślnie jest to gałąź develop
. Teraz dodaję mój kod. Następnie muszę zatwierdzić do centralnego repozytorium git.
git add .
git commit -am 'initial'
git push
W tym momencie przeszedł do gałęzi rozwoju. Chcę również dodać to do gałęzi master.
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
Zauważ, że nic nie zrobiłem między początkiem a końcem wydania. A kiedy skończyłem wydawanie, zostałem poproszony o edycję dwóch plików. Doprowadziło to gałąź rozwoju do opanowania.
W witrynie produkcyjnej, która znajduje się na tym samym komputerze, co moje centralne repozytorium git, chcę umieścić repozytorium /var/www/vhosts/example.net
. Mam już /var/www/vhosts
.
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
Jeśli maszyna produkcyjna byłaby również na innym komputerze, git clone
polecenie wyglądałoby tak, jak na maszynie programistycznej.
git clone --bare
zrobi to, co myślisz.