1. PREPARANDO O AMBIENTE
1.1. 1º Passo: Instale o GIT - site: Git
1.2. 2º Passo: Checando a instalação
1.2.1. git --version
1.3. 3º Passo: Configurando o nome do usuário
1.3.1. git config --global user.name "NomeUsuario"
1.3.2. git config user.name (irá mostrar o nome do usuário configurado)
1.4. 4º Passo: Configurando o email do usuário
1.4.1. git config --global user.email "[email protected]"
1.4.2. git config user.email (irá mostrar o email configurado)
1.5. 5º Passo: Checando todas as configurações do git
1.5.1. git config --list
1.6. 6º Passo (Opcional): Criando alias
1.6.1. git config --global alias.s status
2. CICLO DE VIDA DOS ARQUIVOS
2.1. Mapa Ciclo de Vida
2.2. untracked
2.2.1. O GIT ainda não reconhece o (s) arquivo (s).
2.3. unmodified
2.3.1. O GIT já reconhece o (s) arquivo (s). Agora ele passa a ser observado.
2.4. modified
2.4.1. Ao editar o (s) arquivo (s) o GIT irá marcá-lo como MODIFICADO.
2.5. staged
2.5.1. Neste etapa o GIT está aguardando a versão ser fechada COMMITAR as mudanças
2.6. Atenção: após COMMITAR o GIT marca os arquivos como UNMODIFIED
3. REPOSITÓRIO LOCAL
3.1. 1º Passo: Criando uma pasta
3.1.1. mkdir aprendendo-git
3.1.2. a criação pode ser via interface também!
3.2. 2º Passo: Inicializando o repositório
3.2.1. git init
4. REPOSITÓRIO REMOTO
4.1. 1º Passo: Acesse sua conta no www.github.com
4.2. 2º Passo: Crie um novo repositório
4.3. 3º Passo: Faça a ligação entre o Repositório do GitHub x GitLocal
4.3.1. git remote add origin [email protected]:haynersan/tutorial-github.git
4.3.2. git remote -v (demonstra o endereço do repositório no github)
4.4. 4º Passo: Enviando os arquivos para o repositório no GitHUB
4.4.1. git push -u origin master
5. CLONANDO REPOSITÓRIO
5.1. 1º Passo: Com seu terminal de preferência navegue até o diretório desejado
5.2. 2º Passo: execute o comando
5.2.1. clonando branch padrão
5.2.1.1. git clone url-do-repositorio nome-desejado (opcional)
5.2.2. clonando branch específica
5.2.2.1. git clone --branch nome_da_branch url-do-repositorio nome-desejado (opcional)
6. FAZENDO UM FORK
6.1. 1º Passo: Selecione o projeto desejado no GitHub
6.2. 2º Passo: Clique na opção FORK
6.3. 3º Passo: Clone o projeto para sua máquina (opcional)
7. TRABALHANDO COM BRANCHES
7.1. 1º Passo: Verifique as branches existentes
7.1.1. git branch
7.2. 2º Passo: Criando uma branch
7.2.1. git checkout -b nome-da-branch
7.3. 3º Passo: Navegando entre branches
7.3.1. git checkout nome-da-branch
7.4. 4º Passo: Apagando uma branch
7.4.1. git branch -D nome-da-branch
8. VERSIONANDO O REPOSITÓRIO
8.1. 1º Passo: Checando o status
8.1.1. git status
8.2. 2º Passo: Checando diferença entre versões
8.2.1. git diff
8.2.2. git diff --name-only
8.3. 2º Passo: Adicionando arquivos ao GIT
8.3.1. git add * (adiciona todos arquivos)
8.3.2. git add NomeArquivo (adiciona apenas o arquivo informado)
8.4. 3º Passo: Commitando
8.4.1. git commit -m "mensagem clara sobre as ações"
8.5. 4º Passo: Publicando mudanças
8.5.1. git push
8.5.2. git push origin nome_da_branch
8.6. 5º Passo: Analisando o LOG (opcional)
8.6.1. git log
8.6.2. git log --decorated
8.6.3. git log --author="NomeAutor" (será filtrado por autor)
8.6.4. git shortlog
8.6.5. git shortlog -sn
8.6.6. git log --graph
8.6.7. git show CodigoHash
8.6.8. git log --pretty=oneline
8.6.9. git log --pretty=oneline --graph
8.6.10. git log --pretty=oneline --graph --all
8.6.11. git log -numero_dos_ultimos_commits_que_deseja_ver
9. CONCEITOS MERGE x REBASE
9.1. MERGE
9.1.1. Visão Macro
9.1.2. Prós e Contras
9.2. REBASE
9.2.1. Visão Macro
9.2.2. Final do Rebase
9.2.3. Prós e Contras
10. DESFAZENDO AS "COISAS"
10.1. 1º Cenário: - Arquivo com status MODIFIED
10.1.1. git checkout NomeArquivo
10.1.2. git checkout *
10.2. 2º Cenário: - Arquivo pronto para ser COMMITADO
10.2.1. git reset HEAD NomeArquivo
10.2.2. git reset HEAD *
10.3. 3º Cenário: - Arquivo COMMITADO
10.3.1. git reset --soft CodigoHash (tem que ser a hash que você deseja retornar)
10.3.2. git reset --mixed CodigoHash (tem que ser a hash que você deseja retornar)
10.3.3. git reset --hard CodigoHash (tem que ser a hash que você deseja retornar)
11. TRABALHANDO COM MERGE
11.1. 1º Passo: Verifique a branch que você está
11.1.1. git branch
11.2. 2º Passo: Navegue até a branch que deseja unir
11.2.1. git checkout nome-da-branch
11.3. 3º Passo: Certifique que está branch desejada
11.3.1. git branch
11.4. 4º Passo: Execute o merge
11.4.1. git merge NOME-DA-BRANCH
12. TRABALHANDO COM REBASE
12.1. 1º Passo: Verifique a branch que você está
12.1.1. git branch
12.2. 2º Passo: Navegue até a branch que deseja unir
12.2.1. git checkout nome-da-branch
12.3. 3º Passo: Certifique que está branch desejada
12.3.1. git branch
12.4. 4º Passo: Execute o rebase
12.4.1. git rebase NOME-DA-BRANCH
13. CRIANDO UM ".gitignore"
13.1. 1º Passo: Crie o arquivo com o nome .gitignore
13.2. 2º Passo: Configure o que NÃO deseja versionar. Exemplos
13.2.1. *.json (nenhuma extensão json será versionada)
13.2.2. /node_modules (a pasta inteira não será versionada)
13.2.3. .arquivo.xlsx (o arquivo em específico não será versionado)
13.3. O Repositório "github/gitignore" contém diversos exemplos de como configurar seu .gitignore a depender do tipo de projeto
14. APAGANDO BRANCHES E TAGS
14.1. 1º Passo: Excluindo tag de forma local
14.1.1. git tag -d nome-da-tag
14.1.2. git branch -D nome-da-branch (o "D" deve ser maiúsculo)
14.2. 2º Passo: Excluindo tag no repositório remoto
14.2.1. git push origin :nome-da-tag
14.2.2. git push origin :nome-da-branch
14.2.3. Os comandos tanto para TAG e BRANCH são idênticos
15. CASOS DA VIDA REAL
15.1. 1º Cenário: Fiz um push na MASTER de algo que não deveria. Como reverter?
15.1.1. 1º Passo: git log
15.1.2. 2º Passo: git revert cod_hash_commit
15.1.3. 3º Passo: git push
15.2. 2º Cenário: Fiz um push em uma BRANCH_QUALQUER (exceto master) de algo que não deveria. Como reverter?
15.2.1. git reset --soft CodigoHash (tem que ser a hash que você deseja retornar)
15.3. 3º Cenário: Fiz um commit e escrevi errado a mensagem. E agora?
15.3.1. git commit --amend
15.4. 3º Cenário: Fiz um commit e ficou faltando adicionar uma pequena mudança. Eu não quero criar um novo commit. E agora?
15.4.1. 1º passo: git add .
15.4.2. 2º passo: git commit --amend
15.5. 4º Cenário: Executei um git reset --hard numero_hash É possível recuperar?
15.5.1. 1º passo: git reglog
15.5.2. 2º passo: git reset --hard numero_hash