Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lucasrmagalhaes/git-github

Git e GitHub - Comandos e conceitos.
https://github.com/lucasrmagalhaes/git-github

alura dio git github

Last synced: 1 day ago
JSON representation

Git e GitHub - Comandos e conceitos.

Awesome Lists containing this project

README

        


Git e GitHub: Controle e Compartilhe seu Código



















Comando:
Descrição:



git config --local user.name "Seu nome"
Define o nome localmente.



git config --local user.email "Seu e-mail"
Define o endereço de e-mail localmente.



git config --global user.name "Seu nome"
Define o nome globalmente.



git config --global user.email "Seu e-mail"
Define o endereço de e-mail globalmente.



git config --global --list
Lista as configurações globais.



git config --global core.editor "code --wait"
Define o Visual Studio Code como editor padrão.



git config --global core.editor "vim"
Define o vim como editor padrão.



git config --global --unset core.editor
Volta para o editor padrão.



git config --global init.defaultBranch main
Configurando o git para iniciar sempre com a branch main ao invés da master (git init). A partir da versão 2.28.


git config --global core.excludesfile nome-arquivo
Arquivo global ignorado.



git init
Inicializa um repositório Git local.



git init --bare
Cria um repositório que não terá a working tree, ou seja, não conterá uma cópia dos arquivos. Como o repositório servirá apenas como servidor, para que outros membros da equipe sincronizem seus trabalhos, poupa espaço de armazenamento desta forma.



git status
Analisa o estado do repositório.



git add nomeDoArquivo
Marcar o arquivo para ser salvo (commitado).



git add .
Coloca todos arquivos (novos, modificados e removidos) no index/stage. Usando o ponto, será adicionado ao stagging somente os arquivos a partir do diretório que você está, e os sub-diretórios deste.



git add --all
Coloca todos arquivos (novos, modificados e removidos) no index/stage. Adiciona ao staging arquivos desde a raiz do repositório passando por todos os subdiretórios, e aqui está a diferença, não importa se você está na raiz ou no sub-diretório.


git mv nome-arquivo novo-nome-arquivo
Renomeia o arquivo.



git rm nome-arquivo
Deleta o arquivo.


git commit -m "Mensagem"
Realiza o commit com o título.



git commit -m "Mensagem" -m "Descrição"
Realiza o commit com o título e descrição.



git commit -a -m "Mensagem"
Adiciona todos os arquivos e realiza o commit.



git log --oneline
Lista os logs em linhas de forma mais limpa.



git log -p
Lista os logs com mais detalhes, mostrando o que aconteceu no projeto.



git log --graph --oneline --all
Todos os logs super detalhados.



git log --help
Ver algumas opções disponíveis.



git log cheatsheet
Comandos para personalizar a busca de logs.



gitk
Visualizador de histórico gráfico.



git remote
Lista os remotes.



git remote -v
Lista os nomes e endereços.


git remote add origin https://github.com/usuario/projeto.git
Adiciona o repositório remoto no diretório local.



git remote set-url origin https://github.com/usuario/projeto.git
Outra maneira de adicionar o repositório remoto no diretório local.



git remote remove nome-remote
Remove o remote.



git remote rename nome-atual novo-nome
Renomeia o remote.



git clone url nome
Baixa o repositório localmente. Nome é opcional caso queira definir um nome diferente do original.



git clone -b nome-branch repositorio-remoto-url
Baixa o repositório localmente em um branch específico.



git clone --branch nome-branch repositorio-remoto-url
Outra maneira de baixar o repositório localmente em um branch específico.



git push nome-remote nome-branch
Envia os dados para o repositório remoto. Se utilizar git push -u origin main ficará salvo e na próxima vez rodar somente: git push.



git push --all
Envia os dados de todas as branches para o repositório remoto.



git fetch
Para obter informações sobre um repositório remoto, mas não alterar nenhuma branch.



git pull
Atualiza as informações do repositório local.



git branch
Lista as branches locais.



git branch -a
Lista as branches locais e remotas.



git branch nome-branch
Cria uma branch.



git checkout nome-branch
Muda de branch.



git switch nome-branch
Muda de branch.



git checkout -b nome-branch
Copia e entra na branch.



git switch -c nome-branch
Copia e entra na branch.



git checkout -
Volta para a branch anterior sem escrever o nome.



git branch -m novo-nome
Renomeia a branch, se estiver dentro dela.



git branch -m nome-atual novo-nome
Renomeia a branch, dentro de outra branch.



git branch -d nome-branch
Deleta a branch somente sem conflitos.


git branch -D nome-branch
Deleta a branch com ou sem conflitos.



git merge nome-branch-secundaria
Caso tenha commits fora da branch principal e ocorreu um BUG na branch principal. Acessar a branch principal, corrigir o erro e rodar o comando.



git merge --abort
Cancelar um merge.



git rebase -i --root
Edita no terminal todos os commits. Possível alterar a ordem, combinar e etc.



git rebase nome-branch-secundaria
O merge junta os trabalhos e gera um merge commit. O rebase aplica os commits de outra branch na branch atual.



git rebase -i
Deixa o usuário editar a lista de commits para liberar.



git clean -n
Lista arquivos a serem removidos.



git clean -dn
Lista arquivos e diretórios a serem removidos.



git clean -df
Remove arquivos e diretórios.



git checkout -- nome-arquivo
Descarta alterações do arquivo.



git restore nome-arquivo
Descarta alterações do arquivo.



git checkout .
Descarta alterações de todos os arquivos.


git restore .
Descarta alterações de todos os arquivos.


git reset HEAD nome-arquivo
Desmarcar o arquivo para ser commitado.



git reset --soft HEAD^
Configura HEAD para o commit anterior e deixa as mudanças do commit desfeito no stage/index.



git reset --hard HEAD^
Configura HEAD para o commit anterior e remove as mudanças do commit desfeito.



git revert nome-hash
Remove as alterações no código do commit.



git stash
Salva os dados modificados para depois.



git stash save "mensagem"
Salva os dados modificados para depois com contexto.



git stash list
Lista os estados salvos.



git stash clear
Limpa os estados.



git stash apply numero-array
Aplica as modificações.



git stash drop numero-array
Remove as modificações.



git stash pop numero-array
Aplica e remove do stash.


git checkout nome-hash
Viajando no tempo. Não é possível editar e salvar, apenas se criar uma nova branch ou entrar dentro da master.


git diff nome-commit..nome-commit
Mostra as diferenças entre dois commits.



git rm -rf --cached nome-diretorio/
Remove o arquivo/diretório dos arquivos monitorados.



git diff
Mostra o que foi alterado e o que ainda não foi adicionado para ser commitado.



git tag -a versao-0.1.0 -m "Lançando a primeira versão."
Cria um ponto que não pode ser mais modificado.



git tag
Lista as versões.



git push origin main versao-0.1.0
Subindo a versão.



git cherry-pick id-commit
Selecionar commit específico para trazer ao branch desejado.




git bisect start

git bisect good commit

git bisect bad commit

git bisect reset


Achar um commit que quebra o build do projeto.
Indica um commit que contém um estado bom do seu repositório (good) e um commit que contém um estado ruim do seu repositório (bad). Com isso o git vai realizando checkouts, seguindo uma busca binária, e você pode indicar se o estado é bom ou ruim. Ao final, o git lhe diz qual commit danificou o repositório.


git rm -r --cached
Limpando o cache.


git commit --amend
Altera e adiciona as novas modificações no último commit com a mensagem alterada.


git commit -am "Nova messagem de commit"
Altera e adiciona as novas modificações no último commit com a mensagem alterada.



git commit -amend --no-edit
Altera e adiciona as novas modificações no último commit sem alterar a mensagem.



git gc --prune=now
Git pull fails "unable to resolve reference" or "unable to update local ref".

.gitignore



     Arquivo: .gitignore

     Funciona para não monitorar arquivo(s) ou diretórios.

Links