- git-scm.com/download
- no linux já vem instado, geralmente.
-
guarda as infos no git config do sistema todo, do usuário e do projeto.
-
config global é do usuário
-
git config --global user.name "Seu nome"
-
git config --global user.email "[email protected]"
-
git config --global core.editor [comando do editor]
-
git config user.name
(responde com o seu nome) -
git config user.email
(responde com o seu nome) -
git config --list
(mostra uma lista de informações do seu git)
mkdir git-course
: para criar uma pastacd git-course/
: entrar na pastagit init
: inicializa um repositório vaziols -la
: mostra todos os diretórios que tem no repositóriocd .git/
: entra no diretóriols
: lista tudo que tem no diretóriocd ..
: volta 1
- untracked: arquivo acabou de ser adicionado, mas o git ainda não conhece dentro do repositório nenhuma versão
- adiciona arquivo no git
- unmodified: existe no git, mas não tem modificação
- modifica o arquivo
- modified: arquivo modificado
- jogar o arquivo para área onde vai ser criada a versão
- staged: fica com todos os arquivos modificados para poder commitar
git status
: reporta como o repositório esta nesse momentogit add
: tira do modified e coloca no stagedgit commit -m "mensagem"
: criar uma versão
git log
: mostra o hash do commit, quem foi o autor dele, e a mensagem do commitgit log --decorate
: mostra mais detalhesgit log --author="nome"
: filtra por autor de commitgit shortlog
: mostra em ordem alfabética todos os autores, quantos commits e quais fizeramgit shortlog -sn
: mostra só o nome e a quantidade de commitsgit log --graph
: mostra de forma gráfica oq ta acontecendo com os branchs e as versõesgit show [hash]
: mostra tudo que foi feito naquele commit
git diff
: mostra a modificação que rolou naquele commitgit diff --name.only
: mostra só o nome do arquivo que foi modificado
-
git checkout [nome do arquivo]
: retorna o que o arquivo era até antes da edição -
quando o arquivo já está no staged
git reset HEAD [nome do arquivo]
: ele tira o arquivo do staged
-
quando o arquivo já foi commitado
git reset --soft
: mata o commit, mas o arquivo fica no stagedgit reset --mixed
: mata o commit, volta o arquivo para modifiedgit reset --hard
: ignora a existencia do commit e tudo que existe nele, mata tudo
Normal pelo github
Links de referência:
- Abra o terminal
- Cole o texto abaixo, substituindo o seu email do Github.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Isso cria uma nova chave SSH, usando o email como uma label.
- Gerando um par de chave RSA publica/privada.
- "Enter a file in which to save the key," aperte Enter. Isso aceita o padrão de onde fica o arquivo.
Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]
- Escreva uma frase de segurança. Para mais informações, veja "Working with SSH key passphrases".
Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
- Adicionando sua chave SSH no ssh-agent:
ssh-add ~/.ssh/id_rsa
- Para copiar MANUALMENTE sua chave SSH:
cat ~/.ssh/id_rsa.pub
- OU copie o SSH para a área de tranferência utilizando o xclip, para instalá-lo e copiar execute os seguintes comandos:
Linux | Ubuntu
sudo apt-get install xclip
- Então rode:
xclip -sel clip < ~/.ssh/id_rsa.pub
- Agora na sua página do GitHub vá até o menu Settings.
- Clique em "SSH and GPG keys" na lateral esquerda.
- Ou acesse diretamente este link: https://github.com/settings/keys
- Clique no botão "New SSH Key", preencha o título à sua escolha, geralmente o nome da máquina.
- E cole o SSH que está na sua área de transferência na caixa de texte "Key", se precisar coloque sua senha novamente.
git remote add origin [colar o ssh]
git push -u origin master
: envia os arquivos locais para o repositório remoto
git push origin [branch]
git clone [ssh]
Fork é para projetos que não são seus, direto pelo Github.
Branch é um ponteiro móvel que leva a um commit.
Vantagens:
- Poder modificar sem alterar a master
- Facilmente desligável
- Múltiplas pessoas trabalhando
- Evita conflitos
git checkout -b [nome da branch]
: cria a branchgit branch
: mostra em que branch eu tô
git checkout [nome da branch]
: muda de branchgit branch -D [nome da branch]
: apaga a branch
- Sempre que eu for fazer o merge de uma branch na master, ele cria um commit para juntar os dois.
- Cria um ciclo.
- Merge é uma operação não destrutiva, ele cria um commit novo para juntar tudo.
- Parte ruim é que sempre cria um commit extra sem sentido e o histórico fica poluído.
- Não cria um ciclo, permanece tudo linear.
- Evita commits extras e mantém o histórico linear.
- O ruim é que perde a ordem cronológica. (Pega o commit e põe no início da fila, sem se preocupar se foi feito antes ou depois)
- Ignorar e não trackear alguns arquivos.
Guarda os arquivos que não foram commitados num arquivinho que eu posso chamar quando necessário.
git stash
: guarda tudo numa sacolinhagit stash apply
: aplica as mudanças que tinha guardadogit stash list
: mostra a lista de todos os stashes que eu tiver fazendogit stash clear
: limpa tudo que tiver no stash
Atalhos dos comandos
git config --global alias.[atalho] [nome do comando que ele executa]
- exemplo:
git config --global alias.co checkout
- exemplo:
Serve para criar versões diferentes de tudo.
-
exemplo:
git tag -a 1.0.0 -m "comentário"
-
para subir isso:
git push origin master --tags
Isso fica em releases no github
git revert [commit que deu pau]
Ele reverte o commit e apaga o que você fez nele, mas não sumiu com o commit anterior.
git push origin :[tag ou branch que quero apagar]
Emoticons em commit pode trazer uma visibilidade instantânea sobre o que se trata o mesmo.
Nos commits ele pode trazer os seguintes significados:
🎨 Ao melhorar o formato / estrutura do código
🚀 Ao melhorar o desempenho
✏️ Ao escrever documentos
💡 Nova ideia
🚧 Trabalho em andamento
➕ Ao adicionar recurso
➖ Ao remover o recurso
🔈 Ao adicionar log
🔇 Ao reduzir o log
🐛 Ao corrigir um bug
✅ Ao adicionar testes
🔒 Quando se lida com segurança
⬆️ Ao atualizar dependências
⬇️ Ao desatualizar dependências
Para ver mais, acesse aqui.