Git - Ciclo básico de trabalho

Resolvi escrever este tutorial para tentar preencher uma lacuna no ensino sobre o sistema de controle de versão distribuído Git, que é um simples e objetivo passo a passo do ciclo básico de trabalho no dia a dia.

[ Hits: 14.728 ]

Por: Claudio Rocha de Jesus em 09/07/2012


Criando repositório no servidor GNU/Linux



Resolvi escrever este tutorial para tentar preencher uma lacuna no ensino sobre o sistema de controle de versão distribuído Git.

Se você fizer uma busca no Google, encontrará vários sites, Wikis e blogs ensinando como instalar o Git no GNU/Linux, no Windows e seus principais comandos, junto toda a história de sua criação. Mas ainda não encontrei nada simples e objetivo ensinando o ciclo básico de trabalho.

No final deste tutorial, existem vários links onde será possível se aprofundar na história, na instalação e em todos os seus comandos, mas o foco aqui é a utilização básica no dia a dia.

O meu cenário é o seguinte: tenho um servidor GNU/Linux com Debian onde está instalado o Git, este será o servidor de integração e uma estação de trabalho com Windows 7, também com o Git instalado.

O meu ciclo de trabalho com o SVN, basicamente, criava o projeto no servidor, baixava uma cópia para a minha máquina, fazia as atualizações necessárias e subia as alterações para o servidor, meu objetivo é fazer o mesmo com o Git.

Para criar um novo projeto no servidor, siga os seguintes passos:

1. Conecte-se no servidor através de um cliente PuTTY, Secure Shell ou até mesmo através do PowerShell do Windows.

2. Na console do servidor, navegue até o diretório onde deseja criar os projetos. No meu caso é /srv.

3. Criar os diretórios para hospedar os projetos. Criarei o diretório base onde todos os projetos ficarão:

# mkdir git

4. E dentro deste, o diretório do projeto:

# mkdir git/zambo

5. Aplicar a permissão 775 para todos:

# chmod 775 /srv/git -R

6. Navegar até o diretório do projeto:

# cd /srv/git/zambo

7. Criar o repositório:

git init (Similar ao svnadmin create)


Aqui devo abrir um parêntesis, porque apanhei bastante do Git neste ponto.

Aparentemente, criar um projeto no Git é somente executar este comando e a partir daí criar arquivos e adicioná-los no projeto. Mas quando fiz isso e criei um arquivo para testes e adicionei no projeto (como veremos a seguir) e depois clonei o projeto na minha estação de trabalho, modifiquei o arquivo e tentei subir para o servidor de integração, recebi a seguinte mensagem de erro:

error: refusing to update checked out branch: refs/heads/master
error: By default, updating the current branch in a non-bare repository
error: is denied, because it will make the index and work tree inconsistent
error: with what you pushed, and will require 'git reset --hard' to match
error: the work tree to HEAD.
error:
error: You can set 'receive.denyCurrentBranch' configuration variable to
error: 'ignore' or 'warn' in the remote repository to allow pushing into
error: its current branch; however, this is not recommended unless you
error: arranged to update its work tree to match what you pushed in some
error: other way.
error:
error: To squelch this message and still keep the default behaviour, set
error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.


Pesquisando na Internet, descobri em um fórum que deveria criar o projeto com o seguinte comando:

# git init --bare

Este comando cria um repositório de projeto limpo, e se o arquivo de configuração de ambiente GIT_DIR não está definido, ele é definido como o diretório de trabalho atual.

Feito isso, consegui subir os arquivos normalmente para o servidor.

    Próxima página

Páginas do artigo
   1. Criando repositório no servidor GNU/Linux
   2. Clonando o repositório na estação de trabalho Windows
Outros artigos deste autor

Implantação de um Sistema de Workgroup Open Source

Compilando o Mono 2.2 no Ubuntu 8.10

Conversão da base de dados do Cyrus IMAP no Debian

Leitura recomendada

MooseFS - Sistema de arquivos distribuído

Sistemas de arquivos - Conceitos básicos

Configuração de Servidor NFSv4 no CentOS 6

fstab - Sua função e parâmetros

Clonando HDs via rede com G4U (Ghost for UNIX)

  
Comentários
[1] Comentário enviado por denommus em 09/07/2012 - 11:07h

Acho que seria recomendável ajudar a traduzir o Pro Git, o melhor livro de git, escrito e mantido pela comunidade: http://git-scm.com/book

O repositório do progit: https://github.com/progit/progit

[2] Comentário enviado por crochadejesus em 10/07/2012 - 10:22h

Eu até que gostaria, e já pensei nisso, mas meu inglês ainda é só para leitura.
Aprendi muito neste livro, recomendo.

[3] Comentário enviado por albfneto em 10/07/2012 - 15:10h

eu gostei muito do tutorial. Eu uso Git bastante no Sabayon e no gentoo e funtoo. Distros baseadas no Gentoo usam.
há poucos tutoriais de Git em português.
parabéns pelo artigo.


Contribuir com comentário