Git e gitlab para equipes e contribuição em projetos
@allythy



Telegram: https://t.me/allythy
GitHub: https://github.com/allythy
Site: https://allythy.github.io/
E-mail: allythy@phprn.org
Projetos em equipe

Use 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 --continueWorkflow Git
Centralized Workflow
- Branch única
- Fluxo de trabalho parecido para quem vem do SVN
- Equipes pequenas
Feature Branch Workflow
- Uma branch para cada funcionalidade
- Evita muitos conflitos
- Trabalho em paralelo
- Bom para equipes grandes
Git FLow
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 ?
git refloggit reset --hard número-do-commitEntregando as ""funcionalidades""
Merge request
Criando template:
.gitlab/merge_request_templates/contributions.mdcenário PERFEITO
A REALIDADE
contribuindo COM PROJETOS
Trabalhando 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://github.com/allythy/Minicurso.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
Obrigado
Git para equipes e contribuição em projetos de software livre
By allythy
Git para equipes e contribuição em projetos de software livre
- 501