Git – Meu primeiro commit

O Git é um VCS(Version Control System) ou popularmente dizendo uma ferramentas de versionamento, muito utilizada hoje em dia, pelo menos no mundo open-source, depois que o Kernel trocou DVCS BitKeeper e Linus Torvalds criou o Git, e vem sendo utilizado até hoje.

Para Linus Torvalds o novo sistema deveria atender:

  • Velocidade
  • Design simples
  • Suporte robusto a desenvolvimento não linear (milhares de branches paralelos)
  • Totalmente distribuído
  • Capaz de lidar eficientemente com grandes projetos como o kernel do Linux (velocidade e volume de dados)

Em todos projetos que trabalho hoje, 100% é utilizado o Git, para quem é familiarizado com terminal CLI é uma poderosíssima ferramenta, mas também tem a versão com Interface Gráfica, abaixo as versões free:

git-cole

GitEye

gitg

gitkraken

Mais opções em Git – GUI Clients.

Instalando o Git

Como ambiente para exemplos estarei realizando tudo em plataforma Linux, para outras Distribuições Linux e Sistemas Operacionais veja Git -Downloads, abaixo a instalação do sistema no Ubuntu.

$ sudo apt-get update ; sudo apt-get install git

Verificando a instalação:

$ git --version
git version 1.9.1

Configurando o Git

Apenas instalando o Git você já possui o ambiente apto para usar o sistema de versionamento, porém, uma configuração inicial e apenas uma unica vez é necessário, uma simples tarefa de incluir o seu usuário e e-mail que será o que lhe identificara durante o trabalho com o git local ou remoto.

Este arquivo de configuração ele pode estar em:

/etc/gitconfig: Irá ser o padrão para todos usuarios do Linux e repositorios

~/.gitconfig: Customizado para cada usuário do sistema, utilizo este.

.git/config: Para o repositório em questão

Para facilitar a configuração e administração podemos usar o git config, uma breve descrição de seu uso:

–system: Caso utilizar /etc/gitconfig

–global: Caso utilizar ~/.gitconfig

–list: Ira listar todas as configurações

–get: Obtem o valor de uma chave em especifico

–add: Adiciona um nova chave [valor]

–unset: Remove uma chave

Para mais informações digite git config ou git help config.

Vamos criar nosso ~/.gitconfig e testar algum dos parâmetros:

$ git config --list

$ git config --global user.name "Cleiton Bueno"
$ git config --global --add user.email "[email protected]"

$ git config --list
user.name=Cleiton Bueno
[email protected]
   
$ git config --get user.name 
Cleiton Bueno

$ git config --global --add user.alias "noteLinux17"

$ git config --list
user.name=Cleiton Bueno
[email protected]
user.alias=noteLinux17


$ git config --global --unset user.alias

$ git config --list
user.name=Cleiton Bueno
[email protected]

Algumas observações, para adicionar uma nova chave [valor] o –add pode ser omitido, onde houver alteração devemos especificar –global ou –system para /etc/gitconfig.

Uma dica bacana, é configurar um editor para usar, no caso, eu utilizo o vim, para configurar basta executar:

$ git config --global core.editor vim

Para abrir com o editor:

$ git config --global -e

Sendo assim segue como ficou a identidade do git do meu usuário:

$ git config --global --list
user.name=Cleiton Bueno
[email protected]
core.editor=vim

Primeiro código usando Git

Apenas para fim deste artigo, irei criar um projeto chamado hello-git no diretório /tmp, iremos iniciar o git, criar um código, realizar commit das modificações dos arquivos em questão, e toda alteração iremos adicionar e realizar commit, e assim por diante, então, vamos lá.

$ mkdir hello-git
$ cd hello-git/
/tmp/hello-git $ git init
Initialized empty Git repository in /tmp/hello-git/.git/

Após o git init dentro do diretório que iremos inserir os códigos, ele diz que criou um .git, este é um diretório oculto com uma estrutura de trabalho do git onde ele usa para “administrar” este repositório e armazena um histórico completo de todas modificações.

Antes de criarmos qualquer arquivos, um comando muito útil é o git status, onde iremos ter varias informações no decorrer da evolução do projeto como novos arquivos, arquivos modificados, arquivos que não receberam commits entre outras informações.

/tmp/hello-git $ git status
On branch master

Initial commit

nothing to commit (create/copy files and use "git add" to track)

Vamos criar o arquivo main.c e executar git status novamente.

/tmp/hello-git $ touch main.c
/tmp/hello-git $ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

	main.c

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

Então, ele nos informa que existe um novo arquivo e não esta sendo “monitorado” pelo git, para isso devemos executar o comando git add <file>, vamos fazer isso e verificar o resultado.

/tmp/hello-git $ git add main.c 
cleiton@nb-bueno /tmp/hello-git $ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   main.c

Agora vou realizar o primeiro commit em meu projeto.

/tmp/hello-git $ git commit -m "Adicionando arquivo main.c"
[master (root-commit) 60d288f] Adicionando arquivo main.c
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 main.c
/tmp/hello-git $ git status
On branch master
nothing to commit, working directory clean

Realizamos o commit e ele nos informa um pequena descrição do que foi feito, 1 arquivo modificado, 0 inserções, 0 remoções e o nome do arquivo criado, agora vamos criar um código simples, salvar, verificar com status e realizar um novo commit.

#include <stdio.h>

int main(void)
{
  printf("Olá Git\r\n");
  return 0;
}
/tmp/hello-git $ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   main.c

no changes added to commit (use "git add" and/or "git commit -a")

/tmp/hello-git $ git add main.c 
/tmp/hello-git $ git commit -m "Adicionado cabecalho stdio.h e um printf dizendo Ola Git"
[master 3ef0a66] Adicionado cabecalho stdio.h e um printf dizendo Ola Git
 1 file changed, 7 insertions(+)

Adicionamos o código no main.c e salvamos, executando o git status ele nos informa que o main.c foi modificado, e que podemos adicionar ele e realizar um commit ou descartar com git checkout — <file>, como podem ver, o git status ajuda muito e auxilia no fluxo do repositório.

Para finalizar, vamos ver como visualizar todos os commits, quem fez, data de alteração e demais informações usando git log.

/tmp/hello-git $ git log
commit 3ef0a666473d85c0a94612d1842c5b7adfe491a0
Author: Cleiton Bueno <[email protected]>
Date:   Mon Nov 7 22:01:16 2016 -0200

    Adicionado cabecalho stdio.h e um printf dizendo Ola Git

commit 60d288fd0c3a6f1378a171697bbd203c0e88b8e7
Author: Cleiton Bueno <[email protected]>
Date:   Mon Nov 7 21:56:41 2016 -0200

    Adicionando arquivo main.c

E agora temos nosso primeiro projeto ou melhor, arquivo sendo versionado com Git e realizando commits.

Considerações finais

Vimos apenas uma ponta desse imenso iceberg que é o Git, e nos limitamos apenas em criar um projeto e inicializar um Git, onde poderíamos ir além, de “clonar” um repositório até mesmo trabalhar com um git remoto como Bitbucket e GitHub entre diversos outros que iremos ver mais a frente.

A ferramenta é mantida sobre a licença GNU GPLv2, e quem tiver curiosidade sobre o nome acesse o Wikipedia que é bem interessante.

Referências

https://git-scm.com/book/pt-br/v1/Primeiros-passos

https://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%B5es

Share Button

CC BY-NC-SA 4.0 Git – Meu primeiro commit by Cleiton Bueno is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.