segunda-feira, 2 de novembro de 2015

Tudo o que você precisa saber sobre Git





Git é um sistema de versionamento de código-fonte livre e distribuído. É rápido, seguro e Open Source, sendo utilizado amplamente no mundo inteiro. Ele foi desenvolvido por Linus Torvalds, o criador do Linux, e é distribuído sob licença GPL.

O Git se encaixa na categoria dos softwares de repositório de fonte, como o CVS ou o Subversion. Existem soluções proprietárias também, como o IBM Jazz Source Control, que faz parte da solução ALM vendida por ela.

Eu comecei a usar repositórios há muito tempo, com o saudoso Microsoft Source Safe, depois migrei para o CVS, SVN, e, por fim, estou usando o Git e adorando.




Por que o Git é diferente?

Para começar, ele é distribuído. Quando você cria um repositório Git, ele é totalmente autônomo, e funciona independente de rede e de servidor. Porém, você pode sincronizar o conteúdo com repositórios externos, replicando suas atualizações.

Ele rastreia o conteúdo todo do repositório, gerenciando suas várias versões separadamente, permitindo o desenvolvimento não linear, com recursos de "branch" e "tag".

Várias IDEs, como o Eclipse, possuem plugins para lidar com o Git. 

Como funciona um repositório Git?

O repositório é uma coleção de arquivos refletindo os vários estados dos artefatos armazenados.

MBP-de-CLEUTON:repositorio cleutonsampaio$ cd .git
MBP-de-CLEUTON:.git cleutonsampaio$ ls
COMMIT_EDITMSG    branches    hooks        logs
FETCH_HEAD    config        index        objects
HEAD        description    info        refs


O repositório fica em uma pasta ".git", dentro da pasta onde você o criou. O seu conteúdo, não nos interessa, pois lidamos com o Git a partir de comandos específicos ele, e não usando o File System.

Geralmente, os projetos em um repositório Git são (ou serão) sincronizados com um repositório Git remoto, que pode ser o Github, por exemplo.

Quando você cria um novo arquivo (ou um conjunto de arquivos, ou pastas), é necessário adicioná-lo ao repositório, isto é feito em duas etapas: primeiro, você o adiciona a uma "workspace" ou área de "staging", e depois, você faz o "commit" para o repositório.

Depois de alterar os arquivos e fazer commit, geralmente, você faz um "push" para o repositório remoto.

O fluxo de trabalho Git é sempre o seguinte:

1) Crie um projeto ou clone um repositório;
2) Adicione novos arquivos ou altere os já existentes;
3) Faça commit, informando uma mensagem;
4) Faça "push" para o repositório remoto.

Baixando o Git

Se o seu sistema operacional é Linux, há uma boa chance dele já vir com o Git instalado. Se for derivado de Debian, você pode verificar isso com:

git --version

Se o Git não estiver instalado, você poderá instalar, dependendo do seu sistema operacional:


Criar projetos

Eu tenho a prática de criar um repositório diferente para cada projeto, mas nada impede que você coloque vários projetos em um repositório único, separando cada um em sua própria pasta.

Para criar um repositório Git, crie uma nova pasta, entre nela (CD) e rode o comando:  

git init

Agora, você pode criar arquivos ou copiar arquivos para a pasta onde criou o repositório, usando-a como uma "workspace". Por exemplo, crie um arquivo simples, chamado "leiame.txt" e copie-o para a pasta onde criou o repositório. Agora, adicione-o à área de trabalho com o comando "add":

git add leiame.txt

O arquivo foi adicionado, mas ainda não faz parte do repositório. Para que ele se torne parte da árvore do repositório, é necessário fazer um "commit". Quando "comitamos" alterações, sempre devemos informar alguma mensagem, ou seja, um pequeno texto que identifique o que fizemos. Por exemplo:

git commit -m "versao inicial"

O Git vai dar algumas mensagens, dizendo que nosso username e nosso email foram configurados automaticamente, mas não tem problema.

O fluxo de trabalho pode ser resumido assim:





Quando seu arquivo é comitado, ele está no HEAD da árvore de versões, ou seja, na última versão do repositório.

Quando um arquivo é adicionado, ele passa a ter suas alterações controladas pelo Git. Ao realizarmos um conjunto de alterações, devemos fazer um "commit", para que elas sejam adicionadas ao HEAD e fiquem disponíveis.

Se você criou o repositório do zero, você não tem um repositório remoto configurado. É sempre uma boa prática usar um repositório remoto, onde você poderá concentrar as alterações feitas por outros desenvolvedores. O Github oferece hospedagem de repositórios Git remotos, mas você pode usar o Gitlab e criar seu próprio agregador de repositórios.

Para adicionar um repositório remoto, é necessário ter a URL dele. Pode ser protocolo Git ou HTTPS. Vou usar um exemplo que tenho no Github o jQana: https://github.com/cleuton/jqana.git:

git remote add origin https://github.com/cleuton/jqana.git

O nosso repositório agora está ligado a um repositório remoto, que chamados de "origin", com aquela URL.

Porém, o conteúdo que temos no nosso repositório não contempla o do repositório remoto. É necessário obter o conteúdo que existe na última versão, dentro do repositório remoto. Isso pode ser feito com o comando "git pull"

git pull origin master

O comando pull é uma mescla dos comandos "fetch" e "merge". Informamos o nome do repositório remoto e o nome do "branch" que queremos puxar. Geralmente é o "master", que é o "trunk", ou seja o branch principal do repositório.

Após executar esse comando, você notará que uma nova pasta foi criada dentro da workspace (o diretório onde o repositório foi criado). Ela contém o que veio do repositório remoto.

Podemos alterar, excluir ou adicionar arquivos ao nosso repositório, sincronizando-o com o remoto. Um repositório local pode ter vários repositórios remotos.

Adicionando pastas

Você pode usar o comando Git Add para adicionar pastas ou arquivos, incluindo de forma recursiva:

git add --all

Clonando repositórios

Se você vai baixar um projeto de um repositório remoto, a maneira mais prática é "clonar" o repositório. Crie uma nova pasta, use o Git Init e rode o comando:

git clone <url do repositório remoto>

git clone https://github.com/cleuton/jqana.git

Quando clonamos um repositório, todas as alterações já vem com a última versão.

Enviando alterações para o remoto

Se você fizer alterações em vários arquivos, que não tenham sido recentemente adicionados, use o flag "a":

git commit -am "<mensagem>"

Depois de você adicionar, alterar e fazer "commit", você pode atualizar o repositório remoto com o comando:


git push origin master


Usando o Git com o Eclipse

Crie uma nova workspace, e use o comando "FILE / IMPORT", selecionando "Other" e depois: "Git":

Indique onde está o repositório Git:

Mande importar o projeto:

Depois, se fizer alterações, você pode selecionar o projeto e, no menu de contexto, selecionar: "Team / Commit" e depois "TEAM / PUSH...".

Este tutorial é patrocinado por: 


https://www.lcm.com.br/site/#/livros/detalhesLivro/javascript-de-cabo-a-rabo---aprenda-a-desenvolver-aplicacoes-usando-somente-a-linguagem-javascript--em-multiplas-plataformas-e-dispositivos.html





COMPRE AGORA MESMO CLICANDO AQUI!