Eu tenho vários projetos no Git nos quais, eventualmente, quero atrair outras pessoas. No entanto, no momento, sou apenas eu e eu uso o Git e o GitHub de maneira muito simplista: sem ramificações e basicamente usando as confirmações como um backup dos meus arquivos locais. Às vezes, voltarei a olhar as versões anteriores dos meus arquivos para referência, mas não precisei fazer reversões a esse ponto, embora aprecie a opção que preciso no futuro.
Como desenvolvedor exclusivo, quais recursos do Git ou GitHub eu poderia aproveitar que me beneficiariam agora? Como deve ser meu fluxo de trabalho?
Além disso, existem práticas específicas que eu preciso começar a adotar antes de adicionar outras pessoas aos meus projetos no futuro?
git
github
solo-development
VirtuosiMedia
fonte
fonte
Respostas:
Claro. Há uma boa prática simples que você pode usar, mesmo que não tenha uma equipe no momento: crie uma ramificação separada para o desenvolvimento. A idéia é que a ramificação mestre contenha apenas versões de código liberadas ou alterações importantes. Isso pode ser adotado facilmente por novos desenvolvedores que ingressam no seu projeto.
Além disso, a ramificação é útil mesmo se você estiver trabalhando sozinho. Por exemplo, você encontra um erro no processo de codificação de um novo recurso. Se você não usar ramificações, precisará fazer as duas coisas: adicionar novos recursos e corrigir o bug na mesma ramificação. Isso não é bom: P Por outro lado, se você criou um novo ramo para criar seu novo recurso, basta fazer o checkout do ramo de desenvolvimento, corrigir o erro e devolver o novo ramo de recursos.
Este é apenas um breve exemplo do que você pode fazer sendo um único programador. Estou certo de que deve haver mais boas práticas.
Eu recomendo este artigo: Um modelo de ramificação Git bem-sucedido
fonte
Estou exatamente nessa situação, mas optei por um fluxo de trabalho um pouco mais complexo, embora não necessariamente mais complicado, com o Git.
O objetivo, a princípio, era aprender o caminho do git, então eu explorei bastante. depois, revertida para praticamente o fluxo de trabalho que você descreveu.
Depois de um tempo, tornou-se difícil trabalhar com isso, pois algumas situações surgiram e me deram maus hábitos que seriam difíceis de romper quando eu ingressasse em uma equipe.
então decidi pelo seguinte:
Também configuro uma conta do git hub na qual sincronizo o tronco. Isso me permitiu começar a trabalhar facilmente em computadores diferentes. Foi por necessidade, mas me permitiu encontrar bugs vinculados ao ambiente em que eu estava e que não estava disponível nos outros computadores. Então agora eu tenho o hábito de tentar um projeto em um sistema "virgem" diferente pelo menos uma vez. Economiza muitas dores de cabeça quando chega a hora de implantar no cliente.
Os vários ramos a princípio pareciam um exagero, mas REALMENTE ajudou muito. Eu poderia começar uma idéia em um ramo, trabalhar nele por um tempo e, quando começo a correr círculos, desisti e comecei outro ramo para trabalhar em outra coisa. Mais tarde, surgiu uma idéia em que eu voltava ao ramo meio cozido e explorava essa idéia. isso me deixou muito mais produtivo, pois pude agir rapidamente com flashes e idéias e ver se funcionava. O custo da troca de ramificações com o GIT é extremamente baixo, tornando-me muito ágil com minha base de código. Dito isto, ainda tenho que dominar o conceito de rebase para limpar minha história, mas como estou sozinho, duvido que realmente precise. Empurrou como "bom aprender".
Quando toda a ramificação se tornou complicada, explorei a opção de log para desenhar uma árvore de alterações e ver qual ramificação estava onde.
Para encurtar a história, o git não é como SVN, CVS ou (brrr) TFS. Ramificar é muito barato e cometer erros que acabam com o trabalho é realmente muito difícil. Apenas uma vez eu perdi algum trabalho e foi porque fiz meus compromissos muito grandes (veja maus hábitos acima). Se você se comprometer com frequência, em pequenos pedaços, o git será definitivamente o seu melhor aliado.
Para mim, o git abriu minha mente para o que realmente é o controle de origem. Qualquer outra coisa antes era apenas uma tentativa de obtê-lo, o git é o primeiro, que em minha mente, o entendi. Dito isto, eu não tentei outros DVCS, muito possivelmente essa declaração poderia ser ampliada para toda a família.
Um último conselho, a linha de comando é seu amigo. Para não dizer que as ferramentas gráficas não são boas, muito pelo contrário, mas eu realmente gostei do git quando desci para a linha de comando e tentei fazer isso sozinho. Na verdade, é muito bem feito, fácil de seguir com um sistema de ajuda muito abrangente. Meu maior problema foi estar vinculado ao console feio do Windows até encontrar alternativas.
Agora eu uso os dois, a integração do Eclipse com o Git para ver o que está acontecendo em tempo real e fazer algumas operações como diffs, explorar o histórico de um arquivo etc. . alguns scripts básicos e nunca fui tão produtivo com relação ao controle de origem e nunca tive tanto controle sobre minha fonte.
Boa sorte, esperava que isso ajudasse.
fonte
Sou versado em vários modelos sofisticados de ramificação e uso alguns no trabalho. No entanto, quando trabalho sozinho em projetos, faço exatamente o que você está fazendo agora. Sempre posso criar um ramo depois do fato, se precisar de um, mas quase nunca preciso. Trabalhando sozinho, raramente tenho correções de erros que não podem esperar até que minha tarefa atual seja concluída. Meu conselho é estar familiarizado com alguns modelos de ramificação, mas não há sentido em complicar as coisas até que você precise.
fonte
Para um modelo mais simples, você pode ver o que o GitHub faz. O "fluxo do GitHub" é muito simples e há um excelente guia aqui: https://guides.github.com/introduction/flow/index.html
Resumo (do blog de Scott Chacon ):
fonte