Pergunta

Eu tenho usado o git e github com a minha pequena equipe de desenvolvedores para nossos projetos. Eu não posso ajudar, mas acho que não estamos fazendo a coisa certa. Estou interessado em saber como os outros usam este fluxo de trabalho dentro de seus projetos.

Como podemos usá-lo: Nós ramificar antes de cada mudança, parte traseira fundir-se o mestre, comprometer localmente e empurrar para o nosso repo github. Em seguida, ssh em nosso ambiente de teste e puxe o branch master do repo github. Não compreendi bem rebase, fetch ou tagging ainda.

Como eu gostaria de usá-lo: Eu gostaria de ser capaz de ssh em diferentes servidores e puxe uma versão específica marcado, como "fase 1" para o servidor. Isso é possível, ou eu preciso de dois repos github diferentes?

Você deveria ramo específico git pulla para os servidores web ou criar um novo alias para git push para?

Você pode controlar release candidates ou ambientes (testes, desenvolvimento, produção) dentro repositório um git? ou você precisa de múltipla?

Se puxar é a solução, você pode puxar um tag específico?

Foi útil?

Solução

Basicamente, você pode muito bem funcionar com um repositório de "central" GitHub.

  • Etiquetas sendo ponteiros imutáveis, eles podem ser usados ??(e empurrou) a qualquer momento, a fim de ser verificado-out a qualquer ambiente de teste ou de produção. Isso permite alguma validação para ocorrer, mas geralmente não serve para o desenvolvimento.
  • Puxando um meio de filiais que você pode fazer algumas evoluções dentro desse ramo (devido a alguma correção de bugs e ajustes para fazer uma vez que o código é em um ambiente de produção) e empurrá-lo de volta para todos repositório do outro desenvolvedor para eles para puxar para trás e tomar em conta.

Então, depende do que você está fazendo nesses servidores:. Única validação (com um status aceito ou rejeitado), ou também novos desenvolvimentos
Em todos os casos, uma tag com uma convenção de nomenclatura adequada é bom para manter o controle de commits específicos na história, mas ramos são necessários cada vez que você precisa isolar um esforço de desenvolvimento.

Outras dicas

Leia a Pro Git livro . Você pode ler as páginas man git para um ano e ainda não obtê-lo: tentando aprender git lendo páginas man é como tentar aprender uma nova língua, ao ler um dicionário, isso pode ser feito. O livro vai ensinar-lhe um punhado de fluxos de trabalho que você pode ter com git, eo que git comandos para uso e em que contexto de usá-los.

No GitHub, eu usar uma conta para a minha empresa, que é onde o "abençoado" vidas de código; Eu, então, manter um garfo pessoal, onde eu trabalho em coisas que não são bastante estável ainda. Na minha máquina local, I lidar com ambos em um repo, de modo que o mestre é o código abençoado (e empurra para a conta da empresa), enquanto todos os outros ramos são para o meu garfo. parte do aqui do meu .git / config:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = git@github.com:xiongchiamiov/fourU.git
[branch "hacking"]
        remote = origin
        merge = refs/heads/hacking
[branch "editor"]
        remote = origin
        merge = refs/heads/editor
[branch "problem-utils"]
        remote = origin
        merge = refs/heads/problem-utils
[branch "tests"]
        remote = origin
        merge = refs/heads/tests

[remote "trunk"]
        fetch = +refs/heads/*:refs/remotes/trunk/*
        url = git@github.com:xyztextbooks/fourU.git
[branch "master"]
        remote = trunk
        merge = refs/heads/master

Desde que eu tenho cometer permissões para o repo empresa, eu só posso merge (ou cereja-escolher) commits de um galho para outro, e empurrá-lo para o local apropriado. Agora, repos separados certamente não são necessárias, mas uma vez que este é um projeto de código aberto, eu gostaria de manter o "oficial" repo livre de ramos aleatórios criados por meus tangentes. Uma vez que atinge o ponto em que ele vai ficar de versão, haverá um ramo 0.x, com marcas para cada versão (0.1, 0.1.1, 0.2, etc.), o que é particularmente vantajoso porque cria automaticamente github tarballs dos arquivos em cada tag, bem adequado para puxar para baixo uma versão específica a uma máquina que não é necessário o histórico completo.

Você deve ler o blog github; eles tiveram algumas boas mensagens descrevendo seu fluxo de trabalho de implantação, que, naturalmente, fortemente envolve git.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top