🔍 Sumário
🚀 Como inicializar um repositório
➕ Como adicionar as mudanças realizadas para commit?
➖ Como remover as mudanças recém-adicionadas?
✅ Mas e agora? Como faço o commit?
🚦 Mas perai, como eu sei o estado dos arquivos?
🤔 Como conectar seu repositório local ao remoto?
🐛 Conflitos entre local e remoto.
🤝 Contribuindo com repositórios de terceiros
Entre na pasta do projeto no terminal e digite:
$ cd meu-projeto/ # Caso não saiba, é assim que se locomove pra pastas no terminal
$ git init
Pronto, repositório inicializado!
Simples, digite o seguinte no terminal:
$ git add .
O . no comando adiciona todos os arquivos modificados para o próximo commit. Caso você não deseje isso, há outras formas:
$ git add nome_do_arquivo.formato
Ou, caso deseje adicionar uma pasta:
$ git add nome_da_pasta/
Putz, quando você fez seu git add você acabou adicionando algumas coisas que não queria? Tranquilo, bora aprender a remover isso!
É bem parecido com a forma mostrada no git add, só muda o comando:
$ git rm --cached nome_do_arquivo.formato
Aí vamos mudar uma coisinha, pra remover tudo que foi adicionado para commit você precisa passar uma outra flag no seu comando, a flag -R, que permite fazer isso de forma recursiva, de forma que remove arquivos e pastas que podem estar dentro de outras pastas:
$ git rm --cached -R .
Simples, faz aí:
$ git rm --cached -R nome_da_pasta/
Quando você tem um arquivo que você não quer incluir no seu repositório, como o famoso .env, a pasta node_modules, ou qualquer arquivo sensível, você pode falar pro git ignorar esse arquivo ou pasta da seguinte forma:
- Na raiz do seu projeto, crie um arquivo chamado .gitignore
- Dentro desse arquivo, digite o nome das pastas e arquivos que você não quer incluir
Você pode encontrar um exemplo de .gitignore na raiz desse repositório.
Simples assim, agora você pode dar git add . sem se preocupar se esses arquivos/pastas serão incluídos.
Seguinte, digita aí no terminal:
$ git commit -m "Mensagem de commit"
E pronto, commit feito!
Em breve: Como remover os arquivos depois do commit
Pra isso você faz o seguinte:
$ git status
Esse comando mostra quais arquivos foram modificados, quais não foram, quais ainda não foram adicionados e quais foram e estão prontos para o commit.
Caso todos os arquivos já tenham sido enviados para commit, a mensagem que você deve receber é:
On branch master
nothing to commit, working tree clean
Antes de qualquer coisa, vamos fazer uma pequena mudança. Há pouco tempo o Github mudou sua branch padrão de master para main e quando você dá um git init para iniciar um repositório local a branch padrão é a master, para ficar de acordo com o padrão do github vamos renomear a branch do seu repositório local:
$ git branch -m main
Caso queira saber, branch é como uma linha do tempo, você pode ter várias branches no seu repositório, mas, como renomeamos, a principal será a main.
É interessante trabalhar com branches conforme for criando novas funcionalidades no seu projeto, para evitar de quebrar as existentes e lançar somente quando tudo estiver certo com ela, mas é opcional e por enquanto você só precisa da main!
Após criar seu repositório Remoto no GitHub, copie o link .git do repositório.
Depois de fazer isso, faça o seguinte:
$ git remote add origin https://github.com/seu_usuario/nome_repositorio.git
E então, para empurrar seu repositório local para o remoto, faça:
$ git push -u origin main
Caso dê algum erro, pode ser que tenham mudanças no repositório remoto que você não tem no local ainda, então, para resolver, faça:
$ git pull origin main
Agora tente o comando push novamente, o problema deve ter sido solucionado e seus arquivos já estão no repositório remoto.
Quando duas ou mais pessoas que estão trabalhando em um mesmo repositório alteram um mesmo trecho de código ao mesmo tempo o código deixa de estar em sincronia.
Então, se uma das pessoas empurra (push) essas alterações que ela fez de forma local para o remoto, as outros pessoas que estão fazendo alteração nesse mesmo trecho passam a ter um conflito e não conseguem mais empurrar suas modificações pro GitHub.
- Faça um Pull, isso significa puxar a versão do remoto para o seu local.
$ git pull origin main
Isso começa um merge das alterações do remoto com as que você fez no local.
- Com alterações em mesmas linhas, o git irá pedir que você mesmo solucione os conflitos do arquivo em questão, porque as alterações são drásticas.
- Abra o arquivo e faça as alterações que forem necessárias, que você deseja.
- Agora sim, dê um git add, depois git commit e então faça um git push para o remoto.
Um grande diferencial de plataformas open-source é a possibilidade de contribuir com repositórios de terceiros, para isso é preciso seguir os seguintes passos:
1 . Vá até o repositório que deseja contribuir https://github.com/Username/Nome_do_repositório
2 . Fork o repositório, com isso você criará uma ramificação do repositório principal, a qual poderá fazer mudanças,
pois essa será a SUA versão do projeto principal
3 . Clone seu repositório "forkado" do projeto principal com:
$ git clone https://github.com/Seu_Username/Nome_do_repositório.git
4 . Crie uma nova Branch:
$ cd repositório
$ git branch nome_da_nova_branch
5 . Mude para a nova branch:
$ git checkout nome_da_nova_branch
6 . Faça alterações no seu repositório "forkado" e use o comando push
já que esta ultilizando uma nova branch, use o comando
$ git push --set-upstream origin nome_da_nova_branch
7 . No github clique em "Compare e Pull Request" para enviar para o usuário do repositório as mudanças feitas comparadas com o repositório principal, com isso ele irá analisar as alterações e decidir aceitar ou não suas mudanças, com um Merge(adicionar suas mudanças ao codigo principal)
obs: importante deixar um comentário no pull request, explicando oque foi alterado no código