Nesta sessão exploramos como usar git com GitHub para contribuir para projetos.
Falamos de como criar Pull Requests e como resolver merge conflicts.
- Fork do projeto para o qual queres contribuir
- Clona o teu fork com
git clone <link-do-teu-fork>
no teu ambiente local - Cria o branch com
git checkout -b <nome-do-branch>
- Faz as alterações...
- Adiciona as tuas alterações com
git add .
- Cria um commit com
git commit -m "<msg>"
- Faz push com
git push
- No teu repositório Fork, ou o original procura a caixinha de sugestão de criação de PR, e clica no botão verde
- Verifica que o base branch é o branch princinpal (ex.
main
) e o repositório base, é o original (em vez do teu Fork) - E voilá!
Estes são alguns comandos relevantes para gerires coleborações, diferentes branches e merge conflicts.
git checkout main
git pull
git checkout <branch_local_que_pretendes_atualizar>
git merge origin/main
git status
git add .
git commit <…>
git push
mais especificamente...
git checkout <branch>
para mudar para o branch<branch>
git pull
para atualizar o teu código local, com o código mais atualizado no repositório remotogit merge origin/<branch-com-atualizacoes>
incorpora as modificações do branch<branch-com-atualizacoes>
(remoto) no teu branch atual<branch>
git merge <branch-com-atualizacoes>
incorpora as modificações do branch<branch-com-atualizacoes>
(local) no teu branch atual<branch>
git add .
adiciona todos os ficheiros com modificação, em preparação para fazer parte de um commitgit commit -m <msg>
cria um commit com a versão atual do código, com os ficheiros que foram preparados comgit add .
git push
atualiza o reporitório remoto, com os teus novos commits locais
Se quiseres incorporar uma modificação do repositório original podes fazer o seguinte:
- Atualiza o teu repositório Fork com o código do repositório original (GitHub disponibiliza um botão "Sync fork" -> "Update branch" que podes usar na página principal do teu fork)
- Localmente, muda pra o branch principal com
git checkout main
(assumindo quemain
é o branch, em vez de por exemplodev
oumaster
) - Atualiza esse branch com
git pull
- Muda o teu branch com
git checkout <teu-branch>
- E faz merge, i.e., incorpora as modificações do branch
main
no teu branch comgit merge main
.
Aqui pode correr tudo bem, e não teres conflitos... Caso tenhas conflitos...
Podes resolvê-los...
- Abrindo o teu editor de texto, e podes escolher qual o estado final do teu repositório, e adicionar as modificações como costumas fazê-lo:
- Adiciona as tuas modificacoes com
git add .
- Faz commit com
git commit -m <msg-de-resolucao>
- Faz push com
git push
- Verifica na tua PR que já não tens conflitos no código
Nota: Há várias formas como podes gerir os branches usando git, estes passos é apenas uma forma :)