terça-feira, 29 de novembro de 2011

Git e minhas experiências - parte 1

Atualmente tenho trabalhado criando aplicações ou até mesmo para os trabalho em casa ou na faculdade e tenho me deparado com a necessidade de versionar para que possam ter em diferentes locais.

Para tanto escolhi o git (link git) que na minha opnião é o melhor sistema de controle de versão (cvs) existente atualmente. Apanhei um pouco até aprender o funcionamento básico em relação ao funcionamento a ele pois associei o seu funcionamento a uma ferreamente espefífica do Eclipse Egit que possibilita um integrar as funcionalidades do controle de versão Git ao ambiente de programação Eclipse de forma que seja mais fácil a sua utilização. Com isso, confesso tive mais dificuldade em entender o git uma vez que eu não compreendia tais aspectos basico recorrendo muitas vezes a documentação do Egit ao invés de buscar informações na documentação do Git. Não quero com isso dizer que o plugin do Eclipse não presta ou coisa parecida mas quero, através desse relato, informar para todos aqueles que estão iniciando em desenvolvimento que caso tenham a necessidade de aprender alguma coisa em computação sempre busque pela referência original.

Depois de muito apanhar eu fui a documentação. e o resultado foi o seguinte:

A primeira coisa para se criar uma um repositório remote siga os seguintes passos

Primeiro adicione um pasta:
$ mkdir Repositorio
$ cd Repositorio

Em repositório crie a pasta de projeto:
$ mkdir projeto1
$ cd projeto1

Na pasta do projeto inicie um :
$ git init --bare

Com isso foi criado um repositório compartilhado. É necessário entender aqui a diferença entre as palavras Compatilhado e Remoto, uma vez que você pode ter diversos repositórios remotos mas não serem compartilhados ou pode também ter diversos repositórios compartilhados mas que não necessariamente sejam remotos.

No nosso exemplo adotaremos um repositório remoto e compartilhado. Assim  é necessário clonar o repositório criado, para tanto executamos os passos seguintes:
$ mkdir projetoClonado
$ cd projetoClonado
$git clone ../Repositorio/projeto1

Com isso criamos uma cópia do projeto compartilhado em Repositorio/projeto1 para projetoClonado. Vale ressaltar aqui que é necessário entender a diferença entre cópia do projeto e referencia ao projeto uma vez que somente criar uma copia local, a menos que você não queira alterar nada e somente ver o que está em Repositorio/projeto1, não faz com que haja uma referencia a um Repositorio/projeto1.

Após a criação do repositório remoto é necessário dar o primeiro commit para criar uma uma referencia. Informo aqui que esse commit vai ser uma atualização do seu repositório local e não do repositório compartilhado (remoto) como muitas pessoas podem achar. Para dar um commit fazemos o seguinte:

$echo primeiroarquivo.txt < "Mensagem no primeiro arquivo"

Para ver o que o resultado disso gera temos:

$git status
#On branch master
#Initial commit
#Untrack files:
 Use git add <file> to include  in what will  be commited

#   primeiroarquivo.txt

Isso solicita que você faça a atualização do repositório ou seja que o arquivo ainda não foi adicionado a área de Stage que para o Git significa dizer que ele não foi adicionado área de de atualização do repositório.

$git add . ou git add <nome do arquivo a ser adicionado>

O próximo passo é atualizar o repositório uma vez que sua atualização está na área de Stage pode-se tranquilamente ser enviado dado commit (diversas traduções estão associadas a essa palavra mas a que mais se enquadra nesse contexto é o 'envio de atualizações' ao repositório).

$git commit -a -m "Primeiro commit de criação" (O argumento -a de -all diz serão que os todos arquivos adicionados ao repositório, no caso do segundo argumento especifica o tipo de mensagem).

Após isso é necessário você adicionar a referencia para um branch master. Bom mas como funciona as referências em Git e o que é um branch. Mas isso é história para o próximo post.


Refências:
http://www.vogella.de/articles/Git/article.html#remotes_setup
http://git-scm.com/book - Uma das melhores referências ao meu ver.


Nenhum comentário:

Postar um comentário