Git Product home page Git Product logo

git-commands's Introduction

💻 Git (Command Line Interface)

🔍 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


🚀 Como inicializar um repositório?

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!

➕ Como adicionar as mudanças realizadas para commit?

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/

➖ Como remover as mudanças recém-adicionadas?

Putz, quando você fez seu git add você acabou adicionando algumas coisas que não queria? Tranquilo, bora aprender a remover isso!

👉👈 Quero remover só um arquivo

É bem parecido com a forma mostrada no git add, só muda o comando:

$ git rm --cached nome_do_arquivo.formato

🔥 Eu quero remover é tudo!

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 .

😏 Eu quero remover só uma pasta do projeto

Simples, faz aí:

$ git rm --cached -R nome_da_pasta/

🙈 Quero que o git add ignore esses arquivos! Como faço?

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:

  1. Na raiz do seu projeto, crie um arquivo chamado .gitignore
  2. 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.

✅ Mas e agora? Como faço o commit?

Seguinte, digita aí no terminal:

$ git commit -m "Mensagem de commit"

E pronto, commit feito!

Em breve: Como remover os arquivos depois do commit

🚦 Mas perai, como eu sei o estado dos arquivos?

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

🤔 Como conectar seu repositório local ao remoto?

Renomeando a master por main

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!

Conectando o local ao remoto

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.

🐛 Conflitos entre local e 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.

😭 O que fazer?!?!?

  1. 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.

  1. 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.
  2. Abra o arquivo e faça as alterações que forem necessárias, que você deseja.
  3. Agora sim, dê um git add, depois git commit e então faça um git push para o remoto.

🤝 Contribuindo com repositórios de terceiros

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

git-commands's People

Contributors

heyloh avatar joaovictornsv avatar nicholasscabral avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.