- Local Version Control Systems
Sistemas de controle de versão local
- Centralized Version Control Systems
Sistema de controle de versão centralizado
- Distributed Version Control Systems
Sistema de controle de versão distribuido
- Modified - Alterações feitas nos arquivos que ainda não foram confirmadas no banco de dados.
- Staged - O arquivo modificado foi selecionado e as alterações feitas no projeto deve ser salvas na próxima versão do projeto.
- Committed - Versão do projeto, armazenada com segurança em um banco de dados local.
Geral
git help
Comandos específicos
git help add
git help commit
git help status
Atualizações rápidas de ajuda utilizando o -h
git add -h
Ver a versão do git instalada na máquina
git --version
Verificar as configurações do usuário na máquina que foi instalado o git
git config -l
git config --list
Visualizar todas as suas configurações e aonde estão sendo utilizadas
git config --list --show-origin
Adicionar nome do usuário em nivel global
git config --global user.name "Flávio Júnior"
Adicionar e-mail do usuário em nivel global
git config --global user.email flaviojunior.work@gmail.com
Adicionar nome da branch em nivel global
git config --global init.dafaultBranch master
Iniciar repositório
git init
Verificar status do repositório
git status
git status -s
git status --short
Abrir o projeto no Visual Studio Code
code .
Adicionar um arquivo
git add arquivo.txt
Adicionar todos os arquivos criados recentemente
git add .
Visualizar as mudanças aplicadas em arquivos que foram modificados mesmo depois que foram enviados para staging area
git diff
Visualizar as mudanças aplicadas em determinado arquivo
git diff --staged
git diff --cached
Remover arquivo
git reset index.html
Desfazer ação
git restore index.html
Desfazer add
git restore --staged contato.html
Commit simples
git commit
Realizar commit com os arquivos modificados e enviados para a área de planejamento
git commit -m "Implementando recursos na página principal do site"
Commit de parâmetro único
git commit -am "Commit de parâmetro único"
Adicionar alterações do projeto sem ter a necessidade de criar um novo commit
git commit --amend
git commit --amend --no-edit
Salvar arquivos
git stash
Listar os arquivos que foram salvos
git stash list
Abrir arquivo alterado
git stash apply
git stash apply 0
git stash apply --index
Excluir arquivos salvos
git stash pop
Defazer uma ação indesejada dentro do projeto
git checkout -f
Listar o histórico de commits do repositório
git log
git log --oneline
git log --graph
Listar o histórico de commits do repositório em uma única linha
git log --oneline
Listar o último commit do repositório
git log -1 HEAD
Listar dados do HEAD no commit
git show HEAD
Desfazer commit sem apagar os arquivos modificados no projeto
git reset 0d27528ebba6650b0a70d59d529983b81adf2962
Desfazer alterações e voltar para um commit especifico
git reset --hard 3e39bbcd5d0e62aa612bb848ccb5fea77f07ffbc
Desfazer o último commit sem desfazer as alterações realizadas no ultimo commit no repositório local
git reset --soft HEAD~1
Excluir último commit salvo no repositório remoto
git push -f origin master
Listar uma quantidade de commits especificos para excluir
git rebase -i HEAD~4
Resultado do comando anterior
pick 5e3670f Implementando recursos na página principal do site
pick c0abaf2 Página de contato
pick 9dc5ab1 Página sobre
pick a652e8a Página home
# Rebase 5611ed4..a652e8a onto 5611ed4 (4 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
# commit's log message, unless -C is used, in which case
# keep only this commit's message; -c is same as -C but
# opens the editor
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# . create a merge commit using the original merge commit's
# . message (or the oneline, if no original merge commit was
# . specified); use -c <commit> to reword the commit message
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
Excluindo commit especifico
pick 5e3670f Implementando recursos na página principal do site
pick c0abaf2 Página de contato
drop 9dc5ab1 Página sobre
pick a652e8a Página home
Excluir um arquivo ou diretóro
git rm index.html
Renomear arquivo
git mv index.html contato.html
Nomeação de um arquivo gitignore
.gitignore
Ignorar um arquivo especifico
arquivos_secretos.txt
Ignorar tipos de arquivos especificos
*.txt
Clonar repositório remoto
git clone https://gist.github.com/2545add34e4fec21ec16.git
Clonar repositório remoto com SSH
git remote set-url origin git@github.com:flavio-junior/git-crash.git
Clonar repositório remoto com HTTPS
git remote set-url origin https://github.com/flavio-junior/git-crash.git
Exibir informações do repositório remoto
git remote show origin
Listar todos os repositórios remotos contidos no repositório local
git remote
git remote -v
Vincular repositório local ao repositório remoto
git remote add origin https://github.com/flavio-junior/git-crash.git
Salvar modificações do repositório local no repositório remoto
git push origin main
git push -u origin main
git push --set-upstream origin Feature/MergeDevolopPix/Devolucao
Baixar modificações salvas no repositório remoto para o repositório local
git pull
Baixar todas as referências do repositório remoto
git fetch --all
Listar todas as branches do repositório remoto no repositório local
git branch -r
Baixar uma branch especifica
git pull origin master
Baixar uma branch remota
git checkout master
Resolver conflito em arquivo de forma automatizada
git checkout --theirs CHANGELOG.md
Renomeando repositório remoto
git remote rename origin repository
Criando uma tag simples
git tag v1.0
Tag anotada
git tag -a v2.0 -m " "
Listar todas as tags do repositório
git tag
git tag -l
Exibir informações de um arquivo especifico
git show v1.0
Excluir uma tag
git tag -d v1.0
Criar uma tag através de um commit especifico
git tag v1.0 5611ed4
Salvar uma tag criada no repositório local para o repositório remoto
git push origin v1.0
Salvar várias tags criadas no repositório local para o repositório remoto
git push --tags
Definindo apelidos para instruções especificas
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
Criar uma branch
git branch testing
git switch -c adones
Ver a versão da branch
git branch -v
Listar todas as branch do projeto
git branch
git branch -l
git branch --merged
git branch --no-merged
git branch -r --no-merged
Renomear o nome da branch
git branch -m "main"
git branch --move test testing
Renomear branch remota a partir do repositório local
git push --set-upstream origin Yuri
Excluir uma branch
git branch -d secondary
Navegar até uma branch especifica
git checkout master
git switch testing
Voltar para a branch anterior
git switch -
Criar uma branch alternativa
git checkout -b secondary
Juntar branch secundária com a principal
git merge secondary
Abortar merge
git merge --abort
Adicionar branch do repositório remoto no repositório local
git pull origin master
Mergeando branch
git merge adones
Resolvendo conflito entre branches, passo a passo:
git add .
git rebase --continue
git rebase master
git switch João
git rebase master
git add .
git rebase --continue
git switch master
git merge João
Abortar rebase
git rebase --skip
git rebase --abort
Rebase com usuário remoto
git switch yuri
git pull --rebase origin master
git add .
git rebase continue
Excluindo rebase
git rebase -i master
git rebase -i HEAD~4
Subir alterações para uma branch remota
git push -f origin yuri
Comandos básicos para usar no terminal:
- mkdir - criar uma pasta
- dir - exibi todos os arquivos listados em um diretório especifico
- cls - limpa todos os comandos digitados no pront de comando
- cd - acessa determinada pasta através da rota especificada pelo usuário
- cd.. - voltar
- ipconfig - Para verificar o ip da máquina
Siglas | Definição |
---|---|
Branches | Galho da árvore |
CVS | Sistema de controle de versão |
Untracked | Não creckeado |
Unmodified | Não modificado |
Modified | Modificado |
Staged | Área de planejamento |
Untracked files | arquivos não crackeado |
Changes to be committed | Alterações confirmadas |
Staging area | Area de planejamento |
Lightweight | Referência para um certo commit salva em um arquivo dentro da pasta .git |
Annotaded | Objeto salvo no banco de dados que contém informações sobre quem criou, uma mensagem e podem ser assinadas e verificadas GNU Privacy Guard. |
Aliases | Apelido |
Merge | Mesclar |
Rebase | |
Stashing | |
Workflow | |
Hooks | |
Referências: | |
Git - Documentation |