recentemente mudamos de SVN para Git e, ao mesmo tempo, colocamos nossos sistemas ao vivo no controle de versão (em vez de check-out local e cópia de arquivo ao vivo).
No projeto ao qual estou designado, todos acessamos o mesmo repositório e, para obter alterações no live, estamos git pull
lá. Isso causa problemas porque nossos webdesigners enviam alterações para o VCS que ainda não deveriam estar no ar, mas deveriam estar no ambiente de teste na web.
Quando um dos desenvolvedores agora entra em operação, ele recebe todas as alterações (possivelmente inacabadas).
Pensei em mudar ao vivo para um ramo extra e apenas mesclar o que mudou, mas devido à minha falta de conhecimento do git, não faço ideia de como.
Minha ideia é:
- Crie uma nova ramificação em live (
git branch live
). - Toda vez que algo tem que ir ao ar
- Puxe alterações no mestre (como
git checkout master; git pull; git checkout live
:) git merge master
- Puxe alterações no mestre (como
O problema é que mudar para o master ou puxar tudo diretamente para o sistema ativo causaria problemas, então eu preferiria evitar isso.
Existe alguma maneira de fazer isso ou existe uma maneira melhor de gerenciar o sistema Live (exceto para treinar os webbies para não empurrar coisas inacabadas).
git checkout -f
para ignorar o problema - mas faça um backup!
git pull --all
por padrão, não puxará o mestre para o live, ele puxará o master e o mesclará com o master e (se existir no servidor) puxará o live para mesclar no live. Você tentou?