GIT: Controle de versões distribuído para projetos de software

O desenvolvimento de projetos de software está a cada dia que passa mais colaborativo e integrado. Nesse artigo veremos como funciona um sistema de controle de versão VCS/SCM, abordando de forma mais ostensiva os sistemas de controle distribuído, mais detalhadamente o GIT, uma poderosa ferramenta criada por Linux Torvalds e bastante apropriada para o gerenciamento e controle de códigos fontes.

[ Hits: 75.662 ]

Por: Gleudson Junior em 13/02/2010 | Blog: http://www.gleudsonjunior.blogspot.com/


Introdução a VCS/SCM



Os sistemas de controle de versão, mais comumente chamados de VCS*, ou mesmo SCM**, funcionam como aplicativos computacionais responsáveis pelo controle e gerenciamento de diferentes versões na implementação de um determinado documento. Na sua grande maioria esses sistemas são implantados com a finalidade de controlar e gerenciar o desenvolvimento de projetos de software, proporcionando a manutenção das suas versões, de um histórico e desenvolvimento dos códigos fontes e consequentemente da documentação de todo o projeto.

Esse tipo de ferramenta se mostra bastante presente em organizações e empresas de âmbito tecnológico e de desenvolvimento de projetos de software, sendo também bastante utilizado para o desenvolvimento de ferramentas open source (código aberto). Sua utilidade pode ser denotada por diversos aspectos, seja ele para pequenos projetos, como também para projetos de maior escala comercial.

Existem vários sistemas que propõem estas funcionalidades, entre os mais conhecidos e utilizados em diversos projetos encontram-se: CVS, ou Concurrent Version System (Sistema de Versões Concorrentes) e o SVN, mais conhecido como Subversion, esses dois últimos no ambiente livre, na outra ponta podemos citar sistemas comerciais como: Clearcase da IBM ou o SourceSafe da Microsoft. A grande maioria dos projetos de desenvolvimento de softwares livre optam pelo Subversion, que é a evolução do inveterado CVS, no entanto podemos citar uma exceção a essa "regra", que é a ferramenta chamada Bitkeeper, que apesar de ser comercial, foi por muito tempo utilizado para o gerenciamento e controle de versões do Kernel Linux, até o surgimento do GIT. Muitas organizações comerciais também utilizam o SVN, apesar de algumas dessas empresas preferirem realmente uma solução paga, daí partem em optar pelos produtos mencionados acima. A escolha por empregar uma solução comercial comumente se dá por questões de garantias, visto que as soluções livres não se responsabilizam por bugs, erros ou perdas de informações no software, em contra partida podemos elevar as melhores condições de empregabilidade, segurança e desempenho das ferramentas livres.

Todos os caminhos que nos levam ao emprego de um sistema de controle de versão são comprovados pela sua eficácia e por estes fazerem parte dos principais requisitos para a manutenção e aprimoramento dos processos que envolvem um projeto de software, tanto quando sua ligação com processos de certificações como o SPICE*** e o CMMI****, que tendem a garantir um modelo unificado para os processos de nível corporativo.

Os principais proveitos em se empregar um sistema de controle de versão para monitorar as alterações realizadas durante as implementações de um determinado software são: controle e gerenciamento de históricos de alterações; identificação e restauração de versões estabilizadas; ramificações que ajudam na divisão do projeto, facilitando assim o trabalho de desenvolvimento em paralelo e principalmente o sincronismo oferecido para a equipe de trabalho.

________________________________________
* VCS: acrônimo de Version Control System
** SCM: acrônimo de Source Code Management
*** SPICE: acrônimo de Simulated Program whit Integrated Circuits Emphasis
**** CMMI: acrônimo de Capability Maturity Model Integration

    Próxima página

Páginas do artigo
   1. Introdução a VCS/SCM
   2. Entendendo seu funcionamento
   3. Controle de versionamento centralizado
   4. Controle de versionamento distribuído
   5. Introdução ao Git
   6. Por que o Git?
   7. Utilização básica do Git
   8. Conclusão
Outros artigos deste autor

Protegendo o ESB: Conceitos e técnicas de segurança para empresas de serviços web críticos

Criando dispositivos RAID via software no Linux

Transformando seu Ubuntu Hardy em OSX Leopard

Proxy Squid com autenticação + Sarg + Webmin

Leitura recomendada

Captive-NTFS com kernel 2.6

Discos Virtuais na Amazon WS - Como expandir disco EBS em servidores virtuais Amazon WS

Tunando sistemas de arquivos para GNU/Linux

Dificuldade para instalar o Ubuntu em uma placa mãe com UEFI?

Replicando e distribuindo armazenamento de arquivos através de quatro servidores usando Cluster (GlusterFs) no Debian Lenny

  
Comentários
[1] Comentário enviado por mbmaciel em 13/02/2010 - 12:34h

Excelente artigo!

[2] Comentário enviado por isaque_alves em 13/02/2010 - 12:44h

Muito bom mesmo... merece nota 10...

[3] Comentário enviado por corvolino em 13/02/2010 - 21:47h

Estava procurando algo sobre git e achei por acaso em destaque aqui,favoritado!

Assim que tiver tempo irei ler tudo com prazer,gratz

[4] Comentário enviado por luizvieira em 15/02/2010 - 06:23h

Excelente artigo. Parabéns!

[5] Comentário enviado por gleudson junior em 17/02/2010 - 15:19h

Pessoal,

Só uma correção no link para download do artigo em PDF.

Link correto:

http://docs.google.com/fileview?id=0B9IwEgNkSODyMTMwMzViYTQtYzJmYi00YTg4LThiMzMtMzgyZmQ3Y2EwMzM0&hl=...


[6] Comentário enviado por albfneto em 19/02/2010 - 12:42h

Muito bom artigo. coloquei nos favoritos, porque uso Sabayon , Gentoo e Funtoo e eles usam muito GIT.

[7] Comentário enviado por HelderC em 25/10/2010 - 10:21h

Excelente artigo.

Só uma correção: Quando você dá o comando: $ sudo apt-get install git giltk

O último pacote que vc disse giltk não seria gitk?

[8] Comentário enviado por gabrielsimas em 11/11/2010 - 16:53h

Rapaz, que artigo excelente, eu estava mesmo precisando de uma elucidação "RFC-Like", meus parabens, estou usando-o como referência. Caso você tenha algum tempo disponível, poderia compartilhar conosco uma atualização deste seu artigo. Você inclusive me encorajou a escrever um artigo sobre Desenvolvimento.

Abraços e sucesso!

[9] Comentário enviado por gleudson junior em 03/01/2011 - 21:32h

@HelderC

vc tem razão! Foi um erro na digitação

@gabrielsimas

Os arquivos ligados ao artigo estão em:

Artigo: https://docs.google.com/uc?export=download&id=0B9IwEgNkSODyN2Y2MjVmYjItY2I4Mi00Nzc1LWJjODktNWZlYTk4O...

Apresentação: https://docs.google.com/uc?export=download&id=0B9d9yvBQOo7EN2I4Nzg3ZjYtYWVjNS00NjRiLWFhNzItY2Q0NDVlO...

[10] Comentário enviado por israelborgess em 17/01/2011 - 01:46h

Gleudson, estou com uma dúvida quanto ao GIT, gostaria se possivel da sua ajuda:
Estou tendo dificuldade em criar grupos de repositorios com as permissões. Teoricamente eu entendi que quando preciso criar um novo projeto eu edito o arquivo gitosis.conf e crio com a seguinte estrutura:

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = local@root

[group Desenvolvimento]
writable = Desenvolvimento
members = usuario@term00208n

Sendo que a chave pública o "usuario" com permissão de escrita no diretorio à ser criado terá que estar dentro do diretorio keydir. Entendi tambem que as permissões são realizadas atraves destas chaves públicas de cada usuário. Mas acontece que neste exemplo, digamos que eu tenha outro usuário, usuario2@term001213. Este usuário não teria acesso a este projeto. Porém quando eu clono o diretorio gitosis-admin.git eu consigo logo apos alterar os arquivos deste projeto e executar um "push" logo em seguida. Não tendo permissões para isso!! Não sei se fui claro, mas este usuario2 não deveria ter a permissão neste projeto mas tem!


[11] Comentário enviado por albfneto em 17/08/2013 - 21:53h

sou novo no GIT. estou tentando hospedar minhas isos Sabayon no GITORIUS.

crio o meu diretorio Git loca tudo, no gitorisu ja crier meu repo, agora quero começar a usar, que seria "clonar" meu repo local, para o site Gitorius, mas

o site Gitorius fala para eu executar um comando para configurar o GIT, quando eu faço:

# git checkout master

no meu diretorio local, o git (feito com git init) vem uma mensagem de que o comando acima, só funciona num diretorio de trabalho.


[12] Comentário enviado por morvan em 25/08/2016 - 22:20h

Boa noite.
Gleudson Junior, estava eu à cata de rudimentos sobre o GIT, por estar no rol de cursandos justamente sobre referido software (aquela mania que alguns de nós possuem, de ir ao curso já um pouco munidos, para melhor se situar). Encontrei Elo para este estupendo artigo. Parabéns. Minucioso. Essencial.
Morvan, Usuário GNU-Linux #433640. Seja Legal; seja Livre. Use GNU-Linux.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts