Quero tentar uma resposta que inclua git-flow e três 'pontos' ou casos de uso, o repositório central do git, o desenvolvimento local e a máquina de produção. Isso não está bem testado .
Estou dando comandos incrivelmente específicos. Em vez de dizer <your folder>
, eu direi /root/git
. O único lugar em que estou alterando o comando original é substituir o meu nome de servidor específico example.com
. Explicarei a finalidade das pastas para que você possa ajustá-las adequadamente. Informe-me de qualquer confusão e atualizarei a resposta.
A versão git no servidor é 1.7.1. O servidor é o CentOS 6.3 (Final).
A versão git na máquina de desenvolvimento é 1.8.1.1. Este é o Mac OS X 10.8.4.
O repositório central e a máquina de produção estão na mesma máquina.
o repositório central, ao qual os usuários do svn podem se relacionar como 'servidor' é configurado da seguinte maneira. Eu tenho uma pasta /root/git
onde guardo todos os meus repositórios git. Quero criar um repositório git para um projeto que chamo de 'flores'.
cd /root/git
git clone --bare flowers flowers.git
O comando git deu duas mensagens:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
Nada para se preocupar.
Na máquina de desenvolvimento está configurado da seguinte maneira. Eu tenho uma pasta /home/kinjal/Sites
onde eu coloco todos os meus projetos. Agora eu quero obter o repositório central do git.
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
Isso me leva a um ponto em que posso começar a adicionar coisas a ele. Primeiro configurei o fluxo git
git flow init -d
Por padrão, isso está no ramo develop
. Eu adiciono meu código aqui, agora. Então eu preciso me comprometer com o repositório central do git.
git add .
git commit -am 'initial'
git push
Nesse ponto, ele foi enviado para o ramo de desenvolvimento. Também quero adicionar isso ao ramo mestre.
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
Observe que eu não fiz nada entre o início e o término do lançamento. E quando terminei o lançamento, fui solicitado a editar dois arquivos. Isso levou o ramo de desenvolvimento a dominar.
No site de produção, que está na mesma máquina que meu repositório central do git, quero colocar o repositório /var/www/vhosts/example.net
. Eu já tenho /var/www/vhosts
.
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
Se a máquina de produção também estivesse em uma máquina diferente, o git clone
comando seria semelhante ao usado na máquina de desenvolvimento.
git clone --bare
fará o que você pensa que fará.