4.1 Criando a primeira pasta e o primeiro arquivo
4.2 Escondendo arquivos que não precisam ser acompanhados pelo Git
5.1 Para Você Trabalhar Melhor
5.2 Para Criar ou Apagar Coisas
5.3 Para Orientação e Navegação
5.4 Principais Comandos Apenas para o Git
5.4.1 Para criar apagar ou desfazer coisas no GIT
5.4.2 Para renomear no Git
5.4.3 Para Usar Rascunhos Git Stash
5.4.4 Para Orientação e Navegação no GIT
5.4.5 Para Consolidar as Alterações na Branch Master
Sabe quando você precisava fazer trabalho em grupo e cada pessoa fazia uma parte? Então... O GIT é um programa que administra trabalhos em grupo ou sozinha, com várias edições acontecendo até ao mesmo tempo, mas com controle de cada mudança que foi feita. Dá para mexer no código inteiro lá no seu editor (VSCode, Sublime Text, etc) sem perder as edições anteriores! É o chamado "Controle de Versões".
Nos exemplos, o editor de código será o VSCode.
O Git possui um terminal, assim como o prompt de comando do Windows: o Git Bash.
Pois é, Git e Github não são a mesma coisa! Git é o software que controla as versões do código que você está alterando. Já o Github é um site onde publicamos todo esse controle de versões, visualizamos comentários para cada mudança e ainda dá para fazer muito mais por lá!
Aqui é só o começo. A parceria Git e Github é muito mais que isso!
- A usuária habilita alguma pasta com seus códigos para o Git.
- Altera, apaga, escreve, muda tudo e salva no seu editor normalmente.
- Em seguida, a usuária digita alguns comandos e, com eles, envia o código alterado e atualizado para o Github.
- Pronto! Agora o código está disponível no Github.
-
Meu projeto já está pronto no meu computador e quero jogá-lo no GitHub:
- Vá na sua conta no GitHub e crie um novo repositório, clicando em New;
- Selecione a opção
Add a README file
. Não é obrigatório, mas é uma boa prática sempre!; - Clique em "Code" na próxima página e copie o link que será gerado em https. Algo como
https://github.com/seuuser/repositorio.git
. Guarde isso; - Agora vá para seus arquivos no computador e abra a pasta do seu projeto;
- Abra um terminal dentro desta pasta (dê clique inverso na pasta e selecione "git bash here");
- Digite
git init
para sinalizar que aquela pasta deve entrar no radar do GIT; - Se apareceu
(master)
, digitegit checkout -b main
para trocar o nome da branch principal de master para main; - Digite
git remote add origin o-endereço-que-voce-copiou-do-github
para mostrar ao Git o endereço para guardar os arquivos na internet; - Digite git remote -v só para conferir se funcionou. Deve aparecer o endereço do repositório duplicado;
- Digite
git pull origin main
para puxar o README.md do site para sua máquina - lembre-se que seu repositório na internet já tem um arquivo que não está no seu pc, o README.md. Ele PRECISA estar na sua máquina também. - Agora
git add .
para adicionar todos os arquivos da pasta para o pacote a ser upado no Github; - Digite
git commit -m "Alguma mensagem significativa"
. Assim, você "fecha o pacote e ainda coloca um aviso nele". - Para finalizar,
git push origin main
para jogar tudo no GitHub! Confira o nome da sua branch antes de fazer este comando!
-
Estou num computador novo e quero copiar um repositório meu (já pronto) do Github para trabalhar nele
-
Quero colaborar no projeto de outro usuário (conceito de branch)
Mais tarde, um outro arquivo importantíssimo também precisará ser adicionado, o .gitignore
. Ele vai proteger tudo o que está na sua pasta mas que você não quer que vá para a internet. Guarda isso aí.
Às vezes alguns arquivos não precisam necessariamente ser processados pelo Git e ir para o Github. Suponha que, dentro do repositório, haja uma pasta de imagens que já estão sendo exibidas no README. Essa pasta de imagens não precisa estar no Github também, né?
Para manter esta pasta no seu computador, mas não correr o risco dela ser enviada para o site, estes são os passos:
- Crie um arquivo chamado
.gitignore
na sua pasta no computador; - Abra o arquivo
.gitignore
no VSCode; - Digite os arquivos devem ser ignorados (ou a pasta, sempre com uma barra. exemplo: /Imagens);
- Salve;
- Digite no GitBash
git add .gitignore
(para que o GIT o reconheça, né? :D).
🐧 clear
-> Limpa a tela do terminal.
🌐 cls
-> Clear screen, limpa a tela do terminal.
🐧 🌐 ↑
-> Volta os últimos comandos digitados na linha de código.
🐧 🌐 mkdir
-> Um diretório.
🐧 🌐 echo > <novoarquivo>
-> Um arquivo.
🐧rm -rf <nomedoarquivo_ou_pasta>
-> Qualquer coisa (r de recursivo: vai deletar tudo de uma pasta e f de force, não pedirá verificação de nada, apenas apaga na marra).
🌐del <nomedapasta>
-> Tudo o que está dentro de uma pasta.
🌐rmdir <nomedapasta>
-> Uma pasta e tudo o que tem dentro dela.
🐧 🌐 cd <caminho de uma pasta>
-> Change Direction, vai para uma pasta específica.
🐧 🌐 cd..
-> Vai para um nível acima do diretório.
🐧 ls
-> Lista os diretórios na sua pasta.
🐧 pwd
-> Mostra todo o caminho da pasta em que você está.
🌐dir
-> Lista os diretórios na sua pasta para Windows.
🌐echo %cd%
-> Mostra todo o caminho da pasta em que você está.
git init
-> o GIT na pasta.
git branch <titulodabranchnova>
-> Uma branch nova.
git checkout -b <titulodabranchnova>
-> Uma branch nova (e já entra nela).
git stash
-> Um rascunho no limbo para guardar algo que não deve ser commitado ainda.
git init --bare
-> Inicia o GIT Remote naquela pasta. É como se esta pasta agora fosse seu repositório no GitHub.
git rm --cached <file>
-> Retira o arquivo do monitoramento GIT.
git restore <arquivo>
-> Reverte as mudanças feitas desde o último commit.
git restore --staged <arquivo>
-> Para tirar o arquivo do staged, do git add. Reverte o git add.
git reset HEAD <arquivo>
-> Modifiquei o arquivo, dei git add, mas desisti de commitar.
git revert <hashDoCommitQueQuerApagar>
-> Reverte o git commit.
git checkout -b <novo-branch> // É preciso criar um novo caminho para trilhar.
git checkout <hashDoCommitParaOndeVoltar>
-> Quero voltar para um commit e começar tudo novo de lá.
git branch -m <nomeantigo> <nomenovo>
-> Renomeia a branch.
git remote rename <nomeantigo> <nomenovo>
-> Renomeia a origem. Sai "origin" e entra o nome que você quiser.
É possível criar um rascunho no seu GIT caso você precise parar o que está fazendo e trocar de branch, mas não pode ainda commitar. É só criar um stash, que terá um número. Para ativar ou desativar este rascunho, digite:
git stash apply <numeroStash>
-> O rascunho volta para sua head.
git stash pop <numeroStash>
-> Joga o rascunho para sua head e deleta.
git status
-> O mais importante: Avisa quais documentos estão untracked, unmodified, modified e staging.
git tag
-> Mostra todas as tags.
git config --list
| informações do repositório, incluindo autor e endereço.
git diff // A diferença entre o estado atual e o último commit.
git diff .. // Mostra no terminal todas as alterações entre dois commits.
É muito útil pois detalha todas as alterações que foram feitas através dos commits. Cada comando exibe o seguinte:
git log
-> Todos os commits.
git log --pretty="format %h %s"
-> Apenas a hash e o título do commit.
Esse %h ou %s podem ser alterados para qualquer coisa que você quiser.
No site https://devhints.io/git-log-format tem vários formatos.
git log --oneline
-> Todos os commits, cada um em apenas uma linha.
git log --graph
-> Uma barra lateral gráfica com os commits da sua branch atual.
git log -p
-> Exibe no console todas as alterações já feitas no VSCode.
git log --help
-> abre a página web de ajuda do gitlog.
Master é onde colocamos o código que funciona, a versão "final".
Merge é juntar a branch na master. Desse jeito, você perde os commits feitos na branch que foi mergeada, só fica com os commits da master. É igual mesclar no Excel, que só ficamos com o conteúdo da primeira célula.
git merge <branchsecundaria>
-> Junta a branch secundária na master, deletando os commits feitos na branch.
Rebase também junta a branch na master, mas de forma diferente: você mantem todos os commits da branch secundária e o commit da master vai para frente.
git rebase <branchsecundaria>
-> Junta a branch secundária na master mantendo os commits.
Se duas pessoas alteram a mesma parte do código e dão o push, acontecerá um conflito na hora de mergear. É necessário ir no editor de código e deletar a duplicidade que está acontecendo. O VSCode vai colorir o que está duplicado. É só escolher e apagar.
O marco será como um ponto intermediário no seu projeto, o final de uma versão, uma Release!
git tag -a <nomeParaSuaVersao> -m "Lança a primeira versão (BETA) do projeto"
-> Cria a versão
git push origin <nomeParaSuaVersao>
-> Envia sua tag nova (versão) para o GitHub
Aí, no seu GitHub, sua tag vai ficar separadinha (uma release) e você pode baixar o código a partir daquele ponto!
- HEAD: É UM ESTADO, o seu local de trabalho.
- Index: O lugar entre sua working tree e seu repositório GIT.
- Working Tree: Árvore de Trabalho. É onde os arquivos estão sendo armazenados e editados.
https://git-school.github.io/visualizing-git/: ajuda a visualizar as branchs.
https://devhints.io/git-log: "dev dicas" - dicas do git log.