Introdução ao Git e GitLab
@allythy



Telegram: https://t.me/allythy
GitHub: https://github.com/allythy
GitLab: https://gitlab.com/allythy
Site: https://allythy.github.io/
E-mail: allythy@potilivre.org
O que é um Sistema de Versão de Controle (VCS) ?
- Reverter um um arquivo ou projeto
- Comparar as mudanças
- Saber quem fez alguma alteração
Por que eu deveria usar ?

Tipos de Sistema de Controle de Versão
Sistemas de Controle de Versão Local

Sistemas de Controle de Versão Centralizado (CVCS)

Sistemas de Controle de Versão Distribuído (DVCS)

Por que eu deveria usar o git ?
A forma que ele trata os dados


Quase todas as operações são locais

Possui integridade
SHA-1
74a39bb962c5f40b0c6ab1db1704405d33814b50
7e9c515f547087584976ed4d6c65442cd2b7c7bf
5396e0a2f5c8062fba49286484ac8348204b7015
f977cdaaeb22b6e14a06ae59cc623272a7ac1c68
1d8b9eedf87021ea2b17b75c7f297ea93fbfdda0Quem está usando ?

Quem criou ?

Linus Torvalds - 2005
Instalação do git no GNU/Linux
No Debian e derivados:
apt install gitConfigurações inicias
Define o nome do úsuario:
git config --global user.name "John Doe"Define o endereço de-mail :
git config --global user.email johndoe@example.comDefine um editor de texto padrão:
git config --global core.editor vimVerificandos suas configurações:
git config --listObtendo Ajuda
Documentação Online: Pro Git
Através da linha de comando:
git help comandoman git
Criando um projeto local
Inicializando um repositório:
git initCrie um arquivo chamado aula1:
touch aula1Digite o comando abaixo para ver o estado do repositório:
git status
git add arquivo1 arquivo2git add .Monitorando os arquivos:

git commitgit commit -m "Descrição do que você fez nesse commit"Consolidando as alterações:
O que o git tá fazendo por baixo


Visualizando o Histórico de Commits:
Mostrar o histórico de commits:
git logMostrando o histórico em uma única linha:
git log --onelineMostrando o commit de autor:
git log --author=allythyMostrando o commit de autor:
git shortlogFerramenta visual para ver o histórico de commits
Instale o gitk:
apt install gitkComo usar:
gitk &Desfazendo alterações
Modificar a mensagem do último commit:
git commit --amend
Você fez o um commit e esqueceu de colocar um arquivo que estava na staging area:
git commit -m 'primeiro commit'
git add novoArquivo
git commit --amend
Desfazendo um Arquivo Modificado
touch arquivo
git add arquivo
git status
echo "mensagem" > arquivo
git statusQuero descartar essa modificação:
git checkout -- arquivoCenário:
Tirando um arquivo da Staging Area
git reset arquivoDesfazendo um commit
--soft
--mixed
--hardDesfaz um commit, mas deixa os arquivos na Staging Area
git reset --soft HEAD~1Desfaz um commit, mas deixa os arquivos na working directory
git reset --mixed HEAD~1Desfaz o commit deixando igual ao commit que você informou, sem nada na Staging Area ou no working directory
git reset --hard HEAD~1Tem como desfazer um reset ?
Tem como desfazer um reset ?
git refloggit reset --hard número-do-commitTrabalhando com Branch
O que é uma Branch ?
Uma branch é uma novo linha de desenvolvimento que permite isolar o código de uma nova funcionalidade, matendo a linha base estáve, evitando o represamento de código. No git, o uma branch é apenas uma referência para um commit.
Criando uma branch
git branch nome-da-branchExibindo as branch do repositório
git branchTrocando de branch
git checkout nome-da-branchComo o Git sabe o branch em que você está atualmente ?
Ele mantém um ponteiro especial chamado HEAD

Cenário:
touch arquivo1
git add .
git commit -m" branch testing"git checkout masterComo o Git sabe o branch em que você está atualmente ?
git merge nome-da-branchFazendo o merge
O que é um merge Fast forward ?

Criando uma divergência entre as branch
Cenário:
touch arquivo3
git add .
git commit -m" branch master"
git checkout testingtouch arquivo2
git add .
git commit -m" branch testing"
git checkout master
Fazendo o merge
git merge testing
Gerando um conflito
Cenário:
vim arquivo1
git add .
git commit -m" branch master"
git checkout testingvim arquivo1
git add .
git commit -m" branch testing"
git checkout masterResolvendo um conflito
git statusResolvendo um conflito
<<<<<<< HEAD
<h1>titulo</h1>
=======
<h1>outro titulo</h1>
>>>>>>> testinggit add .git merge --continueTrabalhando com remotos
Exibindo os repositórios remotos
git remotegit remote -vAdicionando um repositório remoto
git remote add [nome] [url]git remote add site git@gitlab.com:allythy/minicurso-git-gitlab.gitExemplo:
Sintaxe:
Enviando arquivos para o repositório remoto
git push [nome-remoto] [branch]git push origin masterExemplo:
Sintaxe:
Baixando arquivos do repositório remoto
git pullgit fetch [nome-remoto]Sintaxe:
ou
git fetch originExemplo
git merge origin/masterRenomeando Remotos
git remote rename [nome-atual] [novo-nome]Sintaxe:
git remote rename site blogExemplo
Apagando o repositório remoto:
git remote rm [name]Sintaxe:
git remote rm siteExemplo
Criando uma conta no Gitlab
Acessem:
https://gitlab.com
Contribuindo com um projeto
Obrigado
Introdução ao Git e GitLab
By allythy
Introdução ao Git e GitLab
- 613