Antigamente as pessoas faziam cópias e mais cópias de um mesmo projeto, e outras acabavam sem querer apagando algum arquivo importante e não conseguindo recuperá-los, E a partir dai surgiu o controle de versão.
É um sistema com a finalidade de gerenciar diferentes versões de um documento, ele vai ser o sistema responsável por pegar as diferentes modificações ocorridas no seu projeto, e criar versões desses documentos facilitando com que você consiga avançar versões ou voltar versões sem ter tantas dificuldades.
Existia uma empresa chamada BitKeeper que guardava todo o código do kernel do linux, então todo o linux era versionado nesse sistema, só que houve uma quebra entre a linux e a BitKeeper, fazendo com que a linux não fosse mais isenta de pagar pelo uso da ferramenta, com isso o linux teria que começar a pagar para usar. O criador do linux, Linus Torvalds decidiu então criar sua própria ferramenta, e criou uma ainda melhor que a da BitKeeper, E fez um sistema de versionamento que tem melhorias comparado as deficiências que ele via na ferramenta da BitKeeper, e assim surgiu o Git.
- Velocidade.
- Design Simples.
- Suporte robusto a desenvolvimento não linear (Milhares de branches paralelos).
- Totalmente distribuído.
- Capaz de lidar eficientemente com grandes projetos como o kernel do linux.
É o sistema de controle de versão.
É um serviço de web compartilhado para projetos que utilizam o Git para versionamento. Atualmente se tornou como se fosse uma rede social onde você disponibiliza seu código para todo mundo, mas dentro a possibilidade de deixar de maneira privada também.
- O Git são seus arquivos no seu local, é o controle de versão.
- O GitHub são seus arquivos na web, é só o seu repositório remoto.
- Modificado (modified);
- Preparado (staged/index);
- Consolidado (comitted);
Comando para definir seu nome de usúario, que vai passar para todos os seus repositórios ( config de usúario (Global))
git config --global user.name "Seu nome"
git config --global user.email "Seu E-mail"
git config --global core.editor
(passar aqui o comando do seu editor, por exemplo se usa sublime será subl ou vscode)
git config user.name
git config user.email
git config --list
mkdir (nome da pasta)
cd (nome da pasta)
git init
ls -la
cd ..
code .
vim(ou outro que você estiver usando) (nome do arquivo) ficaria : vim Readme.md
Assim que executado o comando Apertar a tecla i Depois de escrever tudo que você preferir apertar a tecla ESQ, e apertar : ( que indica que você vai iniciar algum comando ), apertar o w ( que significa que você quer escrever, salvar), e apertar o q ( que significa que você quer sair).
git status
git add ( Nome do arquivo )
ou git add . ( Para adicionar todos os arquivos )
O commit é o momento em que você irá avisar o git, olha pegue todos esses arquivos do meu repositório e crie uma versão dele.
Uma boa prática colocar sempre nos seus comentários, o que você de fato fez de modificação, se você fez uma nova funcionalidade etc..
git commit -m "Escrever aqui seu commit dentro das aspas dupla"
git log
git log --decorate
git log --author="Bianca"
Ele mostra em ordem alfabetica, quais foram os autores, quantos commits eles deram, e quais eles foram.
git shortlog
git shortlog --sn
git log --graph
Dentro do git log existe uma hash, pela hash da pra se identificar o que aconteceu nesse commit, o que foi modificado etc...
Para descobrir quais modificações foram feitas, copie o hash ( o hash é o que está grifado de vermelho ). E use o comando git show ( e a numeração da hash ) então ficaria:
git show 345019c00ad7df85074d8aaaa7e34d9dbee48a74
git diff
git diff --name-only
git checkout
git reset HEAD (Nome do arquivo) exemplo:
git reset HEAD readme.md
git commit -am "Digite aqui dentro das aspas dupla"
Esta opção ignora os ganchos dos commits anteriores e os ganchos das mensagens de commit, tambem possivel utilizar o --no-verify no git push.
git commit -m "mensagem" --no-verify
Como fazer para voltar, depois de ja ter dado o commit? existem 3 tipos de git reset ( Tomar cuidado porque ele altera o histórico do commit )
-
--soft: ele vai pegar as minhas modificações e vai só voltar o commit, deletar aquele commit que ja foi feito, mas o arquivo ja vai estar em state com a modificação pronta pra ser commitado novamente.
-
--mixed: ele vai deletar aquele commit, só que ele vai voltar os arquivos antes do state.
-
--hard: ele vai deletar tudo que foi feito do commit, quando der o git log após utiliza-lo aquele histórico daquele commit que você deletou vai ter sumido, é recomendado usa-lo somente se você ainda não tiver subido aquele commit para um repositório remoto.
A gente sempre escolhe não o commit que deseja retornar, a gente escolhe um commit antes. Para ficar mais fácil de entender aqui vai um exemplo:
O que está grifado de vermelho é o commit que eu quero deletar, e em azul é o commit que quero que não seja deletado, se eu quero apagar o 1 nesse caso ( em vermelho ) então eu tenho que usar o comando git usando uma hash antes do commit que eu quero deletar, ( o que está grifado de azul, o 2 commit) Ou seja sempre que eu for deletar determinado commit eu sempre uso a hash antes dele, para conseguir apagar.
então ficaria:
git reset --soft e482c78f1167a673cc1e04e70498fe89befab5a9
( Nesse caso estou usando o --soft mas poderia ser tambem o --mixed ou o --hard, isso vai de sua escolha )
git remote add origin ( E a url do seu repositório do git )
git push -u origin master
SSH é um protocolo que serve pra autenticar um usúario remoto a um servidor, ou seja ele é baseado em chaves onde existe uma chave pública e uma chave privada, onde a chave privada consegue abrir a chave pública. Ou seja a gente envia a chave publica pro servidor (Github) e com a nossa chave privada dentro da nossa maquina a gente é capaz de abrir a chave publica do servidor e é capaz de subir o nosso código.
- abrir o terminal
$ ssh-keygen -t rsa -b 4096 -C "Aqui dentro das aspas dupla, você irá colocar exatamente o mesmo e-mail que você criou seu github"
Generating public/private rsa key pair
Aqui irá mostrar o local onde você irá salvar a chave e se você deseja alterar o nome ( em geral se deixa assim mesmo o nome padrão id_rsa)
Enter a file in which to save the key (/users/you/.ssh/id_rsa): [Press enter]
- Neste etapa ele irá pedir para você apertar enter novamente (2x) e assim a sua chave será criada.
cd ~/.ssh/
ls
cat id_rsa.pub ou more id_rsa.pub
No campo escrito Key será onde você vai colar a chave SSH e em title geralmente se coloca o nome da maquina para ficar mais fácil depois de se identificar de onde é essa chave.Feito isso é só clicar em Add SSH key, e ai você irá poder utilizar o git push, sem ter problemas de permissão e para subir seu código.
Feito isso é só clicar em Add SSH key, e ai você irá poder utilizar o git push, sem ter problemas de permissão e para subir seu código.
git clone git@github.com:biancateodoro/github-course.git github-course-clone
cd github-course-clone/
more nome do arquivo
É um ponteiro móvel que leva a um commit
- Poder modificar sem alterar o local principal (Master)
- Facilmente "desligável"
- Múltiplas pessoas trabalhando
- Evita conflitos
git rm index.html
git rm -r diretorio
Após o -b você pode escolher o nome que quiser para sua branch, nesse caso estou usando o nome testing mas poderia ser qualquer outro
git checkout -b testing
git branch
git checkout testing
git checkout master
git branch -D testing
Cria um commit novo para juntar as diferenças
- Operação não destrutiva
- Commit extra
- Histórico poluido
Ele joga as mudanças para o inicio da fila
- Evita commits extras
- Histórico linear
- Perde ordem cronológica
Ele pega um projeto que não é seu e faz uma cópia dele.
São atalhos dos comandos
Para criar atalhos você deverá escolher se quer que esse atalho seja global, vai escrever o alias. e a letra que você quer que seja desse comando nessa caso alias.s e depois digitar de qual comando será esse atalho ( que nesse caso status ).
git config --global alias.s status
Ele vai reverter as mudanças feitas, e vai colocar o código anterior, criando 2 commits, um que eu usei o comando revert e ele voltou o código para antes daquela mudança que fiz, e o outro commit vai estar com a alteração mas ai eu posso usar um git reset --hard e apaga-lo.
git revert numeração da hash
git push origin:testing
O npm é uma ferramenta de linha de comando que ajuda a interagir com plataformas online, como navegadores e servidores. Essa utilidade auxilia na instalação e desinstalação de pacotes, gerenciamento da versões e gerenciamento de dependências necessárias para executar um projeto.
npm i
O comando git pull é usado para buscar e baixar conteúdo de repositórios remotos e fazer a atualização imediata ao repositório local para que os conteúdos sejam iguais.
git pull
Se for feita alguma mudança e ela não estiver completa, e você precisou ir para outro branch, você ainda não commitou porque elas ainda estão incompletas, então para salvar esse estado que é antes de um commit
OBS: Quando for excluir verificar qual mensagem você colocou no stash que deseja excluir e clicar nele assim que selecionar a opção.
OBS: pode ser usada qualquer hash, desde a última até a do meio, qualquer uma, então irá ficar git revert e o número da hash
git revert 883cf673ebf864564efd55fb132f16f9aac0adc2
git commit --amend
Depende do seu tipo de editor se for o vim é só pressionar i para abrir o modo de edição ESQ : w q para sair.
npm run build
git push --no-verify
ps aux | grep discord
kill -9 11238
git fetch --all
sudo lshw
Nome dos cursos: Git e Github para Iniciantes | Git e Github na Vida Real
Essa documentação foi feita no intuito de absorver os conhecimentos obtidos nos dois cursos, o conteudo colocado foi os que achei mais importante de ambos.
Dados do curso do : Willian Justen Cursos