GIT + Servidor Remoto

20 views
Skip to first unread message

Mauro Tschiedel

unread,
Jun 2, 2015, 9:58:24 AM6/2/15
to lista...@googlegroups.com
Pessoal,
Estou com uma duvida 'besta'....mas nao achei resposta

Hoje trabalhamos com prestashop, e minha equipe trabalha num servidor web, de desenvolvimento e conecta via ftp neste e vai desenvolvendo e testando. Tudo opera tranquilo, porém nao tenho um 'historico' do que é feito. 

Sei que o git 'resolve' isto, porem tenho uma duvida no meu fluxo, vou tentar descrever abaixo para ver se vocês consigam me ajudar.

Programador A  -> puxa o arquivoA.php do server de desenvolvimento > altera o mesmo -> manda para o servidor e esquece de fazer commit, perdi a versão.
Programador B -> puxa versão do github em vez do server > pega a versão desatualizada > ferrou o processo.

Como que você resolve isto? ou estou pensando 'errado' o fluxo de trabalho?
Agradeço se puderem me dar uma luz de como 'solucionar' neste formato, se é que tem solução.
Obrigado desde já.

Abraço,
Mauro

Mauro Tschiedel

unread,
Jun 2, 2015, 9:00:00 PM6/2/15
to Maximiliano Brizolla, Lista PHPBR
Boa Noite Maximiliano,
Acho que entendi. Muito show.
Fiquei como uma dúvida. Se olhar "Branch Prog. A" e "Branch Prog. B", na minha cabeça ele puxa do repositorio o arquivo...altera...e tal....faz o commit e ele volta para o repositório.
Porém como que ele vai testar, se o arquivo tá no repositorio e nao no 'public_html' ou outra pasta acessivel do servidor? ou o repositorio é definido na mesma pasta do public_html, por exemplo.
Podem editar o ppt.
Abraço,
Mauro









Em 2 de junho de 2015 11:27, Maximiliano Brizolla <maxbr...@gmail.com> escreveu:
Mauro estamos implementado git na empresa que trabalho e definimos um fluxo da maneira descrita abaixo, acho que ela pode te ajudar.

Definimos que vamos trabalhar com branches e o branch master é protegido.

Cada alteração que um desenvolvedor vai realizar ele deve criar um branch e após o término do desenvolvimento(desenvolvimento + testes) ele deve solicitar a realização de merge para o branch master, existe uma pessoa como revisor das alterações.

Quando o revisor verificar as alterações e realizar o merge, essas alterações estariam em 'produção'.

No teu servidor remoto você deve fazer um clone do teu repositório e checkout no branch master, quando for feito o merge do branch do desenvolvedor com o branch master, você acessa o servidor remoto e simplesmente faz um pull no branch master.

Ou seja, os desenvolvedores não acessaram mais o servidor remoto para pegar arquivos para alterar, ele sempre terão que usar o Git para realizar as alterações e a atualização do servidor remoto também será através do Git. Caso não tenha acesso shell no servidor remoto para executar os comandos git, você pode ter na tua maquina local uma pasta com clone e checkout no branch master, ai você atualiza na tua maquina e depois transfere os arquivos via FTP.

Lembrando, aqui cada desenvolvedor tem um servidor de desenvolvimento, ai existe um servidor de homologação onde é juntado todas as alterações e um servidor de produção. No teu caso pelo que eu entendi o servidor de desenvolvimento é único, então acho que vai precisar mudar um pouco essa estrutura. 

 


--
--
---
Você recebeu esta mensagem por estar inscrito no grupo "PHP BR"
 
*** NÃO ESQUEÇA: As regras do grupo estão disponíveis em nossa Wiki:
http://wiki.phpbr.com.br/index.php/Regras_de_Utiliza%C3%A7%C3%A3o_da_Lista
 
Para enviar mensagens para o grupo, envie e-mails para lista...@googlegroups.com
Para cancelar sua inscrição neste grupo, envie e-mail para lista-phpbr...@googlegroups.com
Para mais opções visite este grupo em: http://groups.google.com/group/lista-phpbr
---
Você recebeu essa mensagem porque está inscrito no grupo "PHPBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para lista-phpbr...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Att,
Maximiliano Brizolla

"Porque Deus amou o mundo de tal maneira que deu o seu Filho unigênito, para que todo aquele que nele crê não pereça, mas tenha a vida eterna. Jo 3.16"

Luciano Bezerra

unread,
Jun 3, 2015, 3:27:30 AM6/3/15
to lista...@googlegroups.com

Na minha humilde opinião, o erro não está no processo, mas na pessoa que subiu o arquivo sem commitar;

O Git não permite isso, logo, se vc adota-lo, resolve ...


Abraços



-----------------------------------------------------------------------------------
Luciano Bezerra

Em 2 de junho de 2015 10:58, Mauro Tschiedel <ma...@usinainfo.com.br> escreveu:
--

Luís Henrique Faria

unread,
Jun 3, 2015, 3:28:25 AM6/3/15
to lista...@googlegroups.com
Fácil: ninguém toca nos arquivos em produção. Todo mundo vai alterar arquivos localmente, testar, fazer commit e eventualmente fazer o deploy no servidor em produção (ou passar pelo de homologação se houver e tal).
Se dois devs trabalharem no mesmo arquivo ao mesmo tempo, por acaso, o último a fazer o commit terá que resolver os conflitos.
Em 2 de junho de 2015 10:58, Mauro Tschiedel <ma...@usinainfo.com.br> escreveu:
--

Marcos Barbosa

unread,
Jun 3, 2015, 3:29:26 AM6/3/15
to lista...@googlegroups.com
Se o programador B puxou uma versão desatualizada pode dar problema quando o programador A for tentar subir as atualizações dele. Mas nesse cenário seria:

Programador A tenta fazer commit - Servidor rejeita e pede para atualizar com alterações do server
Programador A atualiza (pull, pode dar conflito, aí que mora o problema)
Se houver conflito ele resolve e envia para o server (push)
Quando programador B puxar as atualizações pode dar conflito. Se der ele resolve os conflito e dá commit e push.


O problema são os conflitos. Quando eles acontecem é preciso resolver manualmente. Isso é chato e deve ser evitado ao máximo. Para diminuir os conflitos é importante que cada um esteja trabalhando em coisas diferentes, pois assim as mesclagens (merge) vão acontecer normalmente sem problemas.

Na seguinte documentação tem tudo que você precisa saber sobre git.

É um pouco grande mas tem um menu (Chapters ) na parte superior que você escolhe os tópicos, que são bem organizados. Dá uma olhada lá, acho que vai ajudar.



Em 2 de junho de 2015 10:58, Mauro Tschiedel <ma...@usinainfo.com.br> escreveu:
--
--
---
Você recebeu esta mensagem por estar inscrito no grupo "PHP BR"
 
*** NÃO ESQUEÇA: As regras do grupo estão disponíveis em nossa Wiki:
http://wiki.phpbr.com.br/index.php/Regras_de_Utiliza%C3%A7%C3%A3o_da_Lista
 
Para enviar mensagens para o grupo, envie e-mails para lista...@googlegroups.com
Para cancelar sua inscrição neste grupo, envie e-mail para lista-phpbr...@googlegroups.com
Para mais opções visite este grupo em: http://groups.google.com/group/lista-phpbr
---
Você recebeu essa mensagem porque está inscrito no grupo "PHPBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para lista-phpbr...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Marcos Barbosa
(31) 8279-8118
barbo...@gmail.com

Maximiliano Brizolla

unread,
Jun 3, 2015, 3:30:02 AM6/3/15
to Lista PHPBR, ma...@usinainfo.com.br
Mauro estamos implementado git na empresa que trabalho e definimos um fluxo da maneira descrita abaixo, acho que ela pode te ajudar.

Definimos que vamos trabalhar com branches e o branch master é protegido.

Cada alteração que um desenvolvedor vai realizar ele deve criar um branch e após o término do desenvolvimento(desenvolvimento + testes) ele deve solicitar a realização de merge para o branch master, existe uma pessoa como revisor das alterações.

Quando o revisor verificar as alterações e realizar o merge, essas alterações estariam em 'produção'.

No teu servidor remoto você deve fazer um clone do teu repositório e checkout no branch master, quando for feito o merge do branch do desenvolvedor com o branch master, você acessa o servidor remoto e simplesmente faz um pull no branch master.

Ou seja, os desenvolvedores não acessaram mais o servidor remoto para pegar arquivos para alterar, ele sempre terão que usar o Git para realizar as alterações e a atualização do servidor remoto também será através do Git. Caso não tenha acesso shell no servidor remoto para executar os comandos git, você pode ter na tua maquina local uma pasta com clone e checkout no branch master, ai você atualiza na tua maquina e depois transfere os arquivos via FTP.

Lembrando, aqui cada desenvolvedor tem um servidor de desenvolvimento, ai existe um servidor de homologação onde é juntado todas as alterações e um servidor de produção. No teu caso pelo que eu entendi o servidor de desenvolvimento é único, então acho que vai precisar mudar um pouco essa estrutura. 

 

Em 2 de junho de 2015 10:58, Mauro Tschiedel <ma...@usinainfo.com.br> escreveu:
--
--
---
Você recebeu esta mensagem por estar inscrito no grupo "PHP BR"
 
*** NÃO ESQUEÇA: As regras do grupo estão disponíveis em nossa Wiki:
http://wiki.phpbr.com.br/index.php/Regras_de_Utiliza%C3%A7%C3%A3o_da_Lista
 
Para enviar mensagens para o grupo, envie e-mails para lista...@googlegroups.com
Para cancelar sua inscrição neste grupo, envie e-mail para lista-phpbr...@googlegroups.com
Para mais opções visite este grupo em: http://groups.google.com/group/lista-phpbr
---
Você recebeu essa mensagem porque está inscrito no grupo "PHPBR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para lista-phpbr...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--

Felipe Fürst

unread,
Jun 3, 2015, 4:36:33 AM6/3/15
to lista...@googlegroups.com
Não atualize mais o server via FTP ... use o GIT pra isso ...

---------------------------------------
Felipe Furst

--

Edinei L. Cipriani

unread,
Jun 3, 2015, 4:38:31 AM6/3/15
to lista...@googlegroups.com, Maximiliano Brizolla
Da uma olhada no git flow



--

Att,
Edinei L. Cipriani

A maneira de se iniciar é parar de falar e começar a fazer. 
Walt Disney

Reply all
Reply to author
Forward
0 new messages