logo gitPrimeiro passo para criar um projeto git, é a definição da pasta de tralho, onde estão todos os arquivos e códigos fontes do projeto.

git init

É criado uma pasta oculta “.git”, verificação da pasta: “ls -a” ou “ls -la”. Tal pata é oculta pois contem todas as configurações do git do projeto, não sendo necessário, na maioria das vezes, usa-lo.

Documentação do comando git init

Gitignore

Sempre é bom ter o cuidado para versionar arquivos de códigos fontes, evitando arquivos executáveis por exemplo ou pastas que não fazem parte do projeto.

Exemplos/Artigos/repositórios sobre o assunto .gitignore:

Documentação oficial sobre gitignore

Gerador de Arquivos Gitignore  (muito útil, basta setar o tipo de projeto e baixar/copiar o texto gerado)

Some common .gitignore configurations

A collection of .gitignore templates (Repositório com coleção de .gitignore de vários tipos de projetos)

.gitignore excluir todas as pastas menos uma (Dúvida bastante relevante!)

Após o “git init” e depois ter criado o arquivo “.gitignore”, com a pasta vazia crie ou copie o primeiro arquivo do projeto.

Um bom exemplo é criar um arquivo .java, e adicionar no .gitignore uma linha “*.class”, assim poderemos ver o git não trabalhando com arquivo com final .class. ( ‘*’ é um coringa que significa todos os nomes com final .class)

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ ls -a
.  ..  Fatorial.class  Fatorial.java  .git  .gitignore
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ 

Adicionando o conteúdo do arquivo para o índice “git add .” e Visualizando o Status do versionando dos arquivos “git status”.

Documentação git add  e a Documentação do git status

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git add .
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git status
On branch master

Initial commit

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

	new file:   .gitignore
	new file:   Fatorial.java

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ 

O ponto do comando “git add .” significa que todos os arquivos serão adicionados ao repositório, com exceção dos arquivos listados no .gitignore.

Gravando as mudanças no git: git commit

Documentação oficial do comando git commit

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git commit -m "Primeira versão do arquivo Fatorial"
[master (root-commit) b08e56c] Primeira versão do arquivo Fatorial
 2 files changed, 65 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Fatorial.java

O parâmetro “-m” diz ao git armazenar a mensagem que vem em seguida. Tal mensagem serve como um guia/manual explicando o que o usuário fez. Quanto mais clara for a mensagem, melhor será o entendimento do próximo programador que for editar o código.

A parte da mensagem:

[master (root-commit) b08e56c] Primeira versão do arquivo Fatorial

Mostra o Branch ou “galho/ramo” do projeto,  como é o primeiro, está posicionado como principal ou master. Em seguida tem o código do commit e a mensagem gravada. Nas outras linhas é exibido os arquivos adicionados.

Verificando  os commit do projeto: git log

Documentação do git log (bastante extensa, mas verifique os exemplos)

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log
commit b08e56c8e0d16e0c12815252cc4a9dd428c9bdcf
Author: José Stélio Malcher Jr <[email protected]>
Date:   Wed Dec 30 11:01:40 2015 -0300

    Primeira versão do arquivo Fatorial
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ 

O comando mostra o código do commit em sua totalidade, assim como exibe o nome e email do usuário e data, ao final exibe a mensagem do commit.

Se houver muitos commit, é possivel filtrar usando alguns parâmetros, exemplo

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log --author="José"
commit b08e56c8e0d16e0c12815252cc4a9dd428c9bdcf
Author: José Stélio Malcher Jr <[email protected]>
Date:   Wed Dec 30 11:01:40 2015 -0300

    Primeira versão do arquivo Fatorial
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$

No linux é possível digitar “git log –” e apertar a tecla TAB, que é exibido os possíveis parâmetros:

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log --
--abbrev=                  --decorate                 --histogram                --no-merges                --root 
--abbrev                   --dense                    --ignore-all-space         --no-min-parents           --shortstat 
--abbrev-commit            --diff-algorithm=          --ignore-blank-lines       --no-notes                 --show-signature 
--after=                   --diff-filter=             --ignore-space-at-eol      --no-prefix                --simplify-by-decoration 
--all                      --dirstat=                 --ignore-space-change      --no-renames               --simplify-merges 
--all-match                --dirstat                  --inter-hunk-context=      --not                      --since=
--author=                  --dirstat-by-file=         --invert-grep              --notes                    --sparse 
--before=                  --dirstat-by-file          --left-right               --numstat                  --src-prefix=
--binary                   --dst-prefix=              --max-age=                 --oneline                  --stat 
--branches                 --exit-code                --max-count=               --parents                  --summary 
--check                    --ext-diff                 --max-parents=             --patch-with-stat          --tags 
--cherry-pick              --find-copies-harder       --merges                   --patience                 --text 
--children                 --first-parent             --min-age=                 --pickaxe-all              --topo-order 
--color                    --follow                   --minimal                  --pickaxe-regex            --until=
--color-words              --format=                  --min-parents=             --pretty=                  --walk-reflogs 
--committer=               --full-diff                --name-only                --quiet                    --word-diff 
--cumulative               --full-history             --name-status              --raw                      
--date=                    --full-index               --no-color                 --relative-date            
--date-order               --graph                    --no-ext-diff              --remotes                  
--decorate=                --grep=                    --no-max-parents           --reverse                  
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log --

O parâmetro mais simples é : git log –oneline

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log --oneline 
b08e56c Primeira versão do arquivo Fatorial

O parâmetro que ajuda a encontrar palavras na mensagem: git log –grep=”Palavra pra buscar na mensagem”

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git log --grep="versão"
commit b08e56c8e0d16e0c12815252cc4a9dd428c9bdcf
Author: José Stélio Malcher Jr <[email protected]>
Date:   Wed Dec 30 11:01:40 2015 -0300

    Primeira versão do arquivo Fatorial
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ 

Outros comandos em Visualizando o Histórico de Commits

Verificando o Status do Git depois do comando commit:

[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ git status
On branch master
nothing to commit, working directory clean
[josemalcher@fedoradell 11-CursoControledeVersãocomGit]$ 

Não há mais arquivos para ser “gravado” no repositório.


 

Para facilitar mais a visualização dos commits há interfaces/programas gráficos que ajudam, usuários linux tem o programa “gitk”, basta instalar com o comando “sudo dnf install gitk” ou “sudo apt-get install gitk”.

Usando Interface Gráfica para Visualizar o Histórico No final desse artigo tem a demostração do programa.

Lembrando que é necessário estar na pasta do projeto para executar o “gitk”

exemplo gitk

 

 

OBS.: Esta postagem é apenas um guia pessoal de referência e estudos sobre o assunto tratado.

Uma resposta

Deixe um comentário para Melissa Lobo Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.