Introdução ao Git

Introdução ao Git

A intenção deste post é dar uma pequena introdução a ferramenta de versionamento Git. Posteriormente pretendemos publicar mais alguns post’s com o tema Git, então este primeiro post serve como um pré-aquecimento (principalmente para aqueles leitores que não conhecem a ferramenta).

Em nossos exemplos iremos utilizar um prompt de comando em um ambiente like Unix como é o MacOS e o Linux.

Antes de iniciar vamos nos certificar de que nosso ambiente já não possui uma instalação do Git, para isto execute o seguinte comando no seu terminal:

> which git
/usr/local/bin/git

Se no seu caso, como no exemplo acima, o retorno for uma determinada localização (diretório: /usr/local/bin/git) então você não precisará instalar o Git. Caso não siga as instruções de instalação no link abaixo:

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

Com o Git instalado vamos configura-lo. Utilize os comandos abaixo para configurar o nome e email do usuário:

> git config –global user.name “seu_usuario”

> git config –global user.email seu.email@gmail.com

Para ver as configurações use o comando:

> git config –list

ou

> git config -l

Essas configurações ficam também no arquivo ~/.gitconfig e seu conteúdo pode se parecer com este:

[user]

name = seu usuario

email = seu.usuario@gmail.com

Para configurações por repositório (não global) veja o arquivo:

<seu repositorio>/.git/config

Se tiver alguma dúvida utilize o help do git com o comando:

> git help

Inicializando

Para inicializar um repositório git utilize o comando:

<dir_de_sua_escolha>/git init

Este comando inicializa um repositório criando os arquivos necessários. Após executar o comando acima inspecione o conteúdo do diretório e perceba que foi criado um novo diretório .git com todos os arquivos necessários para o Git. Veja abaixo listagem de arquivos de um diretório (.git) recém criado com o comando git init

> ls

HEAD               config              description      hooks               info                  objects            refs

Commit

Vamos criar um arquivo index.html no diretório no qual executamos o comando git init, digite:

> touch index.html

Adicione algum conteúdo ao arquivo, no caso utilizamos o comando:

> echo Hello World!!! > index.html

Agora execute o comando git status o qual nos reporta o estado atual do repositório

git status

On branch master

Initial commit

Untracked files:

(use “git add <file>…” to include in what will be committed)
index.html

nothing added to commit but untracked files present (use “git add” to track)

 

Perceba que o git identificou um arquivo (index.html) que não está sendo supervisionado pelo Git, Untracked.

O próprio Git recomenda na mensagem do git status utilizar outro comando (git add) para adicionar o arquivo index.html sobre sua supervisão. Digite:

git add -A

Este comando adiciona todos os arquivos não versionados para a supervisão do Git.

Se quiser adicionar apenas determinado arquivo utilize o comando:

> git add index.html

Agora execute o comado:

git status

On branch master

Initial commit

Changes to be committed:

(use “git rm –cached <file>…” to unstage)
new file:   index.html

 

O git irá mostrar que o arquivo index.html agora está sobre sua supervisão.

Repare que ele sugere o comando git rm para unstage o arquivo. Quando adicionamos o arquivo ele vai para um estado de staged que significa que o arquivo está pronto para ser adicionado para o repositório.

Reparem que o comando git add faz com que o arquivo que estava como untracked passe para o estado de staged.

Os arquivos que estão com o estado de staged ficam em uma região que podemos chama-la de staging. Para que os arquivos que estão em staging passem a fazer parte efetivamente de um repositório precisar ser “commitados” (committing).

Todo commit precisa de uma mensagem para identificar o propósito do mesmo. Para comitar nosso arquivo execute:

git commit -m “commit inicial”

[master (root-commit) 751c09d] commit inicial

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 index.html

Para o comentário obrigatório utilizamos a opção “-m” seguido do seu valor.

Uma vez que temos um commit podemos realizar um log do mesmo, para isso execute

git log

commit 751c09d99b4aaeeb9c147559f0759ffc88c776ed (HEAD -> master)

Author: seu_usuario <seu_email@gmail.com>

Date:   Tue Sep 5 16:23:23 2017 -0300

commit inicial

Todo commit tem um Hash associado, neste caso: 751c09d99b4aaeeb9c147559f0759ffc88c776ed, a cada commit um novo hash é gerado o seu hash, leitor,  será diferente deste.

Ficou na dúvida do que o seu commit contém, quer ver seu conteúdo antes de envia-lo ao repositório? Temos um comando para ver a diferença entre o último commit e as alterações que estão o estado de unstaged no projeto, vamos ver um exemplo adicione um novo conteúdo para o arquivo index.html.

> echo Novo > index.html

Depois execute o comando

git diff

diff –git a/index.html b/index.html

index 0515bd7..7beb2f2 100644

— a/index.html

+++ b/index.html

@@ -1 +1 @@

-Hello World !!

+Novo

Se usamos a opção -a no comando commit conseguimos adicionar as alterações do arquivo index.html. Importante: essa opção funciona apenas para arquivos que já foram adicionados ao repositório. Execute:

> git commit -a -m “adicionando conteudo alterado para index.html”

Rode novamente o comando “git diff” e perceba que não diferenças entre os arquivos staged e as possíveis alterações em unstaged.

Execute o comando git log para ver todos os nossos commits

git log

commit 32aa6531199449afaa12ac56963a1a4c392a05d1 (HEAD -> master)

Author: alisson pedrina <pedrina.alisson@gmail.com>

Date:   Tue Sep 5 16:53:12 2017 -0300

 

adicionando conteudo alterado para index.html

 

commit 8daef664c7b469cc568c48d856c1243c739c07bb

Author: alisson pedrina <pedrina.alisson@gmail.com>

Date:   Tue Sep 5 16:48:14 2017 -0300

inicial

commit 751c09d99b4aaeeb9c147559f0759ffc88c776ed

Author: alisson pedrina <pedrina.alisson@gmail.com>

Date:   Tue Sep 5 16:23:23 2017 -0300

commit inicial

Pronto temos um repositório local com um arquivo. Vamos empurra-lo (push) para um repositório remoto. Se você não tiver um crie um repositório no GitHub ou no Bitbucket e depois execute o comando:

> git remote add origin https://github.com/<seu_user>/<seu_repo&gt;.git

Depois vamos empurrar o nosso arquivo para o repositório remote com o commando

> git push -u origin master

Pronto assim terminamos nosso primeiro post sobre Git. Fiquem atentos aos próximos posts.

Referencias

https://www.learnenough.com/git-tutorial

https://git-scm.com/doc

 

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s