Primeiro 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”
OBS.: Esta postagem é apenas um guia pessoal de referência e estudos sobre o assunto tratado.
Muito bom. Serve como colinha. ;D