Criado por João Barreiros C. Rodrigues e Francisco Carvalho
Auxiliado in loco por Carlos Felgueiras
Este workshop surge para dar os conhecimentos básicos do workflow da ferramenta git aos recrutas da HackerSchool, para que possam contribuir com eficiência para o desenvolvimento de projectos colectivos, dentro ou fora da HackerSchool!
Controlo de versões é a gestão e documentação de várias iterações de data (code, schematics, etc.).
É particularmente importante no contexto de Software Livre e de código aberto (Free and Open Source software) uma vez que a documentação cuidadosa do código das alterações entre versões pode ser muitas vezes crucial para a ágil resolução de bugs e problemas!
O Git é um software de controlo de versões criado por Linus Torvalds (o criador do kernel Linux). É código livre sobre GPL v2.0.
O Git permite cloning, pulling, pushing, etc. de dados guardados em outras instâncias remotas ou locais de git
Já aconteceu a todos
Hora de mandar isto p’ró galheiro
Oh yeah!
Cria a tua conta no GitHub (e-mails institucionais permitem o acesso fácil ao Student Starter Pack).
Obtém o git
e opcionalmente o github-cli
(é bloat).
Log in pelo github-cli (ou melhor ainda usa uma SSH Key/ Personal Access Token)
Configura o teu user no git com:
git config --global user.name "@user.name"
git config --global user.email @user.email
Vai a https://github.com/new
Depois de teres criado o teu repositório faz um cópia local com:
```bash
git clone <url_of_your_repo>
```
Atenção: Se usaste a chave SSH para identificação, usa o url do protocolo SSH e não o HTTP
HTTP URL
SSH URL
O git status
permite ver as alterações feitas no teu repo!
git add <file_path>
git add
informa o git para o começar a fazergit commit -m "commit message"
git push <name_of_remote_repo>
git remote add <name> <url>
, assim como fizemos com o originQuando dois colaboradores alteram a mesma linha, a feature de auto-merge do GitHub não consegue resolver o conflicto.
Para reparar basta ir ao ficheiro com conflictos e remover/manter as linhas desejadas! Muito simples!
Mudar de branch é tão simples quanto usar: git checkout @branch
e para criar e mudar basta adicionar a flag -b
Para “juntar” as linhas do tempo utiliza-se: git merge
o que pode gerar conflictos (mas que já sabes como reparar!)
O Forking é uma ferramenta importante de colaboração, de forma a poder contribuir para repositórios públicos sem ter permissões! Contudo esta operação é feita fora do git no terminal.
Basicamente estamos a criar uma cópia pessoal de um outro repositório!
quando queremos dar merge de volta para o repo original abrimos um merge (ou pull) request
A HackerSchool, em conjunto com o SCDEEC e com o NEEC irá realizar um workshop de git, com interface gráfica, extensivo e detalhado no início do segundo semestre, com atenção especial para os alunos da LEEC e LEAer. Fica atento!