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.
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:
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:
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.
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.
O repositório do progit: https://github.com/progit/progit