Trabalhar remotamente tornou-se muito mais comum no desenvolvimento da web nos últimos anos. Antes do controle da versão, funcionar remotamente no mesmo projeto de desenvolvimento teria sido um pesadelo absoluto. Os desenvolvedores teriam que Envie arquivos grandes para o outro (provavelmente por e-mail), colando em seu próprio código antes de enviá-lo de volta. Não havia uma maneira real de acompanhar o que foi adicionado e quando.
Felizmente, o controle da versão chegou e fez o desenvolvimento em todas as frentes muito mais gerenciáveis. Os projetos da Web tornaram-se muito mais fáceis de implementar e gerenciar, especialmente quando se trata de trabalhar em uma equipe de desenvolvimento remoto. Você não precisa mais se preocupar com a versão atual de um site sendo sobrescrito - cada membro da equipe é livre para trabalhar em qualquer arquivo a qualquer momento, não há confusão sobre onde a versão mais recente de um arquivo está sendo armazenada - e superior armazenamento na núvem ajuda com o processo também.
Neste tutorial, vamos estar usando Github para gerenciar nosso código. Existem inúmeros tipos diferentes de ferramenta de controle de versão por aí, como Bitbucket e TFVC, mas mesmo que sejam todos diferentes, os princípios permanecem os mesmos quando se trata de gerenciar o código.
Por mais maneiras de tornar o seu site de construção do processo mais fácil, consulte Nossos guias para o topo Construtor de sites e hospedagem na web. serviço.
Em primeiro lugar, é muito importante ter um modelo de ramificação bem-sucedido ao trabalhar em qualquer equipe para fazer o processo de desenvolvimento e implantação funcionar sem problemas. Você provavelmente terá vários desenvolvedores trabalhando no mesmo projeto. Ao trabalhar com uma força de trabalho remota, acredito que o melhor fluxo de trabalho é composto por três filiais principais, bem como um conjunto de temporários:
Haverá também um conjunto de ramos de recursos. No entanto, estes serão apenas temporários para criar inicialmente os novos recursos.
Vamos supor que você administre uma equipe com dois desenvolvedores que trabalham remotamente. Vamos chamá-los de Sarah e James: ambos estão trabalhando no mesmo site de comércio eletrônico para um cliente. Sarah precisa desenvolver um recurso que registre os detalhes do cliente.
Nós iríamos quebrar isso em três histórias de usuário separadas - adicionando, editando e removendo - e adicione esses três ingressos no backlog Sprint.
Então, digamos que Sarah começa na seção Adicionar detalhes do cliente. Ela precisaria criar a ramificação do recurso 'Detalhes do cliente' e uma história de usuário para a primeira tarefa 'add-detalhes'.
Git Checkout Desenvolvimento & Amp; & Amp; Git puxar a origem / desenvolver
Git Checkout -B Recurso / Detalhes do Cliente
Git checkout -b add-detalhes
Sarah continuaria a trabalhar no ramo temporário 'add-add-add' localmente e cometer seu trabalho como ela se desenvolve. Agora, digamos que James quer ajudar Sarah com o recurso de detalhes do cliente, então ele começa a trabalhar na exclusão detalhada.
James extrairia a última versão do ramo compartilhado e criaria uma nova filial para a história do usuário 'Detalhes-Details'. Então ele pode começar a fazer suas próprias adições sem se preocupar em substituir o código de Sarah.
Git Checkout Recurso / Detalhes do Cliente
Git puxar a origem / recurso / detalhes do cliente
Git Checkout -B Excluir-detalhes
Ele também usará seu ramo temporário para codificar localmente e cometer quaisquer alterações. Uma vez que Sarah terminou seu recurso localmente, ela coloca o ingresso na revisão de código. Ela empurraria seu código para o ramo de preparação e abriria uma solicitação de tração com o ambiente de encenação.
// ela empurra seu código para o ramo de preparação
Git Push Origor Add-Details
// ela abre uma solicitação de tração com o ambiente de encenação
Git Request-Puxe Staging Add-Details
Nós agora teríamos o ramo do recurso de detalhes do cliente e os dois recursos de recurso de história do usuário em desenvolvimento 'add-details' e 'delete-detalhes'.
Uma vez que seu código tenha sido revisado, ela pode mesclar seu ramo em encenação. O bilhete está agora na coluna de validação, aguardando a validação do desenvolvedor principal.
// ela recebe a última versão do ramo de preparação
Git checkout encenação e amp; e amp; Git puxar a origem / encenação
Git Merge Adicionar-Details & Amp; & Amp; Git Push Orurg Staging
// ela constrói o ambiente de validação
// e pede ao proprietário do produto para validar
Depois que o trabalho de Sarah foi validado, o bilhete pode ser movido para a coluna FEITO. Ela pode mesclar seu trabalho na filial e iniciar outra história de usuário, como exclusão dos detalhes do cliente.
// ela puxa a última versão do ramo de recurso
Recurso de checkout Git / detalhes do cliente
Recurso de origem git / detalhes do cliente
git mesclar add-add-add & amp; & amp; Git Push Origem Recurso / Detalhes do Cliente
Quando todo o recurso foi validado pelo desenvolvedor e do cliente principal, a Sarah pode mesclar a ramificação do recurso em desenvolvimento, como está pronto para ir.
// ela recebe a última versão do ramo de desenvolvimento
Git checkout desenvolver e amp; e amp; Git puxar a origem / desenvolver
Recurso Git Merge / Detalhes do Cliente & Amp; Origem Push Git desenvolver
Quando tudo estiver completo e estiver pronto para implantar em produção, James Mesclats se desenvolve para a liberação e lança a implantação. Neste ponto, ele saberia que todo o código está correto e o cliente é feliz. Ele marca o compromisso do lançamento para obter o histórico de cada versão.
Git Checkout Desenvolvimento & Amp; & Amp; Git puxar a origem / desenvolver
Git Checkout Release & Amp; & amp; Git puxar a origem / liberação
git mesclar desenvolver e amp; e amp; Git Tag 2.1.
Git Push Origin Rede --Tags
Este fluxo de trabalho de desenvolvimento remoto pode ser bastante difícil de entender a princípio, mas se você conseguir que sua equipe funcione por este método, então você tem um fluxo de trabalho livre sem a necessidade de entrar em pânico sobre arquivos sendo sobrescritos ou seus desenvolvedores trabalhando na mesma área.
Existem algumas coisas importantes para lembrar:
Git Co desenvolver & amp; & amp; Git puxar a origem / desenvolver
git ramo -d staging & amp; & amp; Git Push Origem - Delete Encenando
Git Co -B Staging & Amp; & Amp; Git puxar a origem da origem
Com projetos menores, você pode querer usar um fluxo de trabalho menos complexo. Você poderia usar o mestre, que contém a versão mais atualizada, um ramo de desenvolvimento e, em seguida, um conjunto de ramificações para cada recurso adicional - se esse seja fórum, formulário de contato, sistema de checkout. Tudo depende da sua preferência pessoal.
Lidar com conflitos de mesclagem é difícil o suficiente se você estiver trabalhando na mesma sala, mas eles podem se tornar ainda mais de um pesadelo se você estiver trabalhando em um escritório diferente. O mais importante é lembrar que você sempre pode desfazer uma mesclagem e reverta para o estado antes que o conflito tenha ocorrido.
Se você está fazendo todas as mesmas como desenvolvedor de chumbo ou sua equipe, os que os fazendo de forma independente, o primeiro passo é entender o que aconteceu.
Git dirá que você tem caminhos não feridos através da Status do Git. :
$ git status
# No sistema de check-out da filial
# Você tem caminhos não feridos.
# (consertar conflitos e executar "git commit")
Miserável
# Caminhos não feridos:
# (use "git add & lt; file & gt; ..." para marcar resolução)
Miserável
# ambos modificados: checkout.html
Miserável
Nenhuma alteração adicionada a confirmar (usar "git add" e / ou "git commit -a")
Agora, a causa mais comum de um conflito é quando as alterações afetam os mesmos arquivos na mesma linha. Então, vamos dar uma olhada no conteúdo da linha conflituosa. Você notará que o Git é realmente bom no fato de que vai marcar a área conflituosa, colocando-a em & lt; & lt; & lt; & lt; & lt; & lt; cabeça e & gt; & gt; & gt; & gt; & gt; & gt; [outro / ramo / nome] . Neste caso, é Sistema de checkout .
& lt; & lt; & lt; & lt; & lt; & lt; CABEÇA
Esta linha foi confirmada enquanto trabalhava no ramo "formulário de usuário".
=======.
Esta linha, em contraste, foi confirmada enquanto trabalhava no ramo "Sistema de checkout-System".
& gt; & gt; & gt; & gt; & gt; & gt; Refs / Heads / Sistema de Checkout
O conteúdo após o primeiro marcador se originam do seu ramo de trabalho atual. Depois que os suportes angulares, Git nos diz qual ramo as mudanças vieram. Uma linha com =======. separa as duas mudanças conflitantes.
Agora você pode simplesmente abrir o arquivo em um editor, pesquisar os marcadores de conflito e fazer as modificações necessárias. Quando terminar, o arquivo precisa ser exatamente como você quer que ele pareça ou, alternativamente, você pode dizer que você simplesmente irá com uma das versões editadas, chamada nosso ou deles .
Git checkout --ours caminho / para / conflito-ficheiro.html
Há também muitas aplicações de ferramentas de mesclagem que podem ajudar com isso. O caleidoscópio é um ótimo para Mac.
É tão importante quanto um desenvolvedor de leads para ter uma ferramenta de gerenciamento de projetos para gerenciar coisas como tarefas e bugs, especialmente quando seus desenvolvedores não são baseados no escritório. Existem inúmeras soluções por aí, como Zenhub e Asuna, mas acredito que o projeto e o sistema de problemas integrados do Github é o melhor.
Você pode fazer coisas como configurar um novo projeto, criar placas ou atribuir problemas. E não apenas confunda problemas com problemas: você também pode usá-lo para aprimoramentos, perguntas e insetos, entre outras coisas.
Aqui estão alguns dos seus melhores recursos:
Se você for para o Github e, em seguida, dirija-se a um dos seus repositórios, você verá uma guia que é chamada de projetos. De lá, você pode selecionar novo projeto, configurar os detalhes do seu projeto e criar um novo modelo de projeto.
Se você agora selecionar a guia Problemas que estiver ao longo da parte superior e selecionar novo problema, poderá criar um novo problema. Você pode então aplicar vários rótulos - estas são coisas como bug, aprimoramento, pergunta e duplicadas. Você também pode usar o aprimoramento para um novo recurso ou solicitação. Você pode então atribuir vários membros da equipe à tarefa, um marco e também o projeto que você acabou de criar.
Os membros atribuídos terão uma lista de todas as suas tarefas e você pode até usar o quadro de projetos para manter uma faixa do que está sendo construído atualmente. Se você se lembra do nosso tutorial anterior, estávamos falando de movimentar bilhetes para o backlog e validação do Sprint. Então Github funciona muito bem como uma ferramenta all-in-one para supervisionar um projeto.
Este artigo foi originalmente publicado em questão 311 de internet , a revista mais vendida do mundo para web designers e desenvolvedores. Comprar edição 311 aqui ou Inscreva-se aqui .
Artigos relacionados:
(Crédito da imagem: Jeremy Heintz) Neste renderman for maya tutorial, cobriremos uma variedade de tópicos começand..
Os narizes humanos vêm em todas as formas e tamanhos. No entanto, é importante conhecer os fundamentos da anatomia para esculpi..
Há uma mística injustificada em torno da pintura a óleo que colocou alguns artistas de explorá-los. Se você sabe o direito ..
Pintando um retrato pode ser uma tarefa difícil. Mesmo se você dominou Como desenhar um rosto , você pode facil..
Aprender a misturar lápis de cor ajudá-lo a obter mais de suas ferramentas. Em vez de confiar na cor plana de cada lápis, podemos misturá-los para tornar as coisas mais dinâmicas. ..
Se você é um web designer, há uma boa chance de que o Photoshop esteja atualmente aberto e funcionando no seu computador. Vamos enfrentá-lo - Photoshop sempre foi o Workhorse e de fato pa..
Eu uso o spray de adesivo em Artrágono - Uma ferramenta de arte fabulosa, particularmente se você fizer suas pr�..