Git Study Notes

Minhas notas de estudos sobre Git até o momento.

Guia de comandos básicos do git:

Instalação

  • Instale o git pelo site original git-scm.com veja o guia de instalação para linux, mac e windows

Configuração Inicial

Usando o terminal (linux e mac) ou o Gitbash (windows)

  1. git config para configure seu git:

    git config --global user.name "Your Name Comes Here"

    git config --global user.email you@yourdomain.example.com

  2. Crie a SSH Key

    ssh-keygen -t ed25519 -C "your e-mail or comment here"

    Dica:

    • Aperte enter quando pedir para escolher o diretório, pois asimm será direcionado para o diretório padrão; caso não queira digitar uma senha, basta clicar enter duas vezes

    • Procure pela pasta oculta ".ssh" (geralmente está na home/pasta do usuário padrão)

    -> Abra o arquivo 'id_rsa.pub' com o bloco de nota ou outro editor de texto semelhante -> Copie o conteúdo interno do arquivo.

  3. Adicionadando sua SSH Key no Github, Gitlab ou em outra plataforma

    • Vá em configurações e na barra lateral procure pela opção "SSH and GPG keys"
    • Procure a opção "Nova SSH key" ( "New SSH key" )
    • Dê um título pra chave

      -> no campo 'key'cole o conteúdo que foi copiado do arquivo 'id_rsa.pub' -> clique em adicionar chave SSH ("add SSH key")

  4. Teste sua SSH Key (de acordo com o serve do seu cliente git)

    ssh -T git@gitlab.com (no caso do client GitLab)

    ssh -T git@github.com (no caso do client GitHub)

Comandos Para Inicio de Projeto

  1. Para iniciar um projeto do zero

    • crie uma pasta
    • Abra ela pelo terminal e digite:

    $git init

  2. Para subir um repositório local para o teu server no GitHub

    git remote add origin git@github.com:nomedeusuarioGitHub/nomedorespositorio.git

    git push -u origin master

  3. Para clonar, ou seja, começar a partir de um projeto já existente

    $git clone /caminho/para/o/repositório

    • Para clonar de um servidor

    $git clone usuário@servidor:/caminho/para/o/repositório

Comandos Funcionais básicos

  1. Para baixar as últimas atualizações do projeto

    $git pull

  2. Verificar se há alterações no git para ser commitadas (enviadas para o server)

    $ git status

  3. Adicionar uma alteração para commitar

    $ git add 'nome da aplicação'

    • para adicionar todas as alterações

    $git add *

  4. Adicionando o comentário referente ao commit

    $ git commit -m "Comentário a ser enviado"

  5. Publicar as alterações

    $ git push

Links de documentação e outros

Sites de documentação, guias e tutorial recomendados sobre o Git:

  1. https://git-scm.com/docs
  2. https://docs.gitlab.com/ee/gitlab-basics/README.html#gitlab-basics
  3. https://docs.gitlab.com/ee/gitlab-basics/create-your-ssh-keys.html
  4. https://rogerdudler.github.io/git-guide/index.pt_BR.html-keys.html
  5. https://rogerdudler.github.io/git-guide/index.pt_BR.html

Git Ignore

Use the universal one-liner in terminal in the project directory:

touch .gitignore && echo "node_modules/" >> .gitignore && git rm -r --cached node_modules git status

It works no matter if you've created a .gitignore or not, no matter if you've added node_modules to git tracking or not.

Then commit and push the .gitignore changes.

  • Explanation

    Touch will generate the .gitignore file if it doesn't already exist.

    echo and >> will append node_modules/ at the end of .gitignore, causing the node_modules folder and all subfolders to be ignored.

    git rm -r --cached removes the node_modules folder from git control if it was added before. Otherwise, this will show a warning pathspec 'node_modules' did not match any files, which has no side effects and you can safely ignore. The flags cause the removal to be recursive and include the cache.

    git status displays the new changes. A change to .gitignore will appear, while node_modules will not appear as it is no longer being tracked by git.