O Git é um sistema de controle de versão de códigos. Gerencia ramificações feitas por diferentes pessoas de um time de modo a manter a ordem e integração de todas as partes. Ou seja, mesmo que várias pessoas estejam trabalhando em um programa ao mesmo tempo, ainda é possível controlar as mudanças para evitar erros.
GitHub é uma plataforma de hospedagem de código-fonte e arquivos com controle de versão usando o Git. Ele permite que programadores, utilitários ou qualquer usuário cadastrado na plataforma contribuam em projetos privados e/ou Open Source de qualquer lugar do mundo.
Esse repositório tem por objetivo falar sobre o quê é Git e Github, e os principais comandos do git.
Para baixar o git em seu sistema é bem simples basta acessar o site oficial, baixar e seguir o instalador normalmente Acesse o site oficial: [Site Oficial].
SSH é um protocolo, para quê você possa se conectar a servidores e serviços remotos e se autenticar neles. Com chaves SSH, você pode se conectar a GitHub sem fornecer seu nome de usuário e personal access token em cada visita. Você também pode usar uma chave SSH para assinar confirmações.
Para criar chave SSH e Conectar ao gitHub Acesse a documentação a seguir e execute o passo a passo: [Documentação SSH].
As configurações do GIT são armazenadas no arquivo .gitconfig localizado dentro do diretório do usuário do Sistema Operacional (Ex.: Windows: C:\Users\Documents and Settings*SEU-USUARIO ou *nix /home/*SEU-NOME). As configurações realizadas através dos comandos abaixo serão incluídas no arquivo citado acima.
git config --global user.name "Seu Nome"
git config --global user.email [email protected]
git config --global merge.tool vimdiff
git config --global core.editor vim
git config --global core.excludesfile ~/.gitignore
git config --list
(modified) = Modificado;
(staged/index) = Preparado;
(comitted) = Consolidado;
git help
git help add
git help commit
git help <qualquer_comando_git>
Comando | Descrição |
---|---|
git init | Criar novo repositório |
git status | Verificar estado dos arquivos |
git add meu_arquivo.txt | Adicionar arquivo/diretório (staged area) |
git add meu_diretorio | Adicionar um diretório em específico |
git add . | Adicionar todos os arquivos/diretórios |
git add -f arquivo_no_gitignore.txt | Adicionar um arquivo que esta listado no .gitignore (geral ou do repositório) |
git commit meu_arquivo.txt | Comitar um arquivo |
git commit meu_arquivo.txt meu_outro_arquivo.txt | Comitar vários arquivos |
git commit meuarquivo.txt -m "minha mensagem de commit" | Comitar informando mensagem |
git rm meu_arquivo.txt | git rm -r diretorio |
git log | Exibir histórico |
git log -p -2 | Exibir histórico com diff das duas últimas alterações |
git log --oneline | Exibir resumo do histórico de forma resumida |
git log --stat | Exibir resumo do histórico (hash completa, autor, data, comentário e qtde de alterações (+/-)) |
git log --pretty=oneline | Exibir informações resumidas em uma linha (hash completa e comentário) |
git log -- <caminho_do_arquivo> | Exibir histório de um arquivo específico |
git log --summary -S [<caminho_do_arquivo>] | Exibir histórico de um arquivo específico que contêm uma determinada palavra |
git log --author=usuario | Exibir histório de um determinado autor |
git checkout codigo-do-comit | Desfazendo alterações Locais |
git reset codigo-do-comit | Desfazendo alterações Remota |
Comando | Descrição |
---|---|
git remote ou git remote -v | Exibir os repositórios remotos |
git remote add origin [email protected]:leocomelli/curso-git.git | Vincular repositório local com um repositório remoto |
git remote show origin | Exibir informações dos repositórios remotos |
git remote rename origin curso-git | Renomear um repositório remoto |
git remote rm curso-git | Desvincular um repositório remoto |
git push -u origin master | Enviar arquivos/diretórios para o repositório remoto |
git push | Os demais pushes não precisam dessa informação |
git pull | Atualizar os arquivos no branch atual |
git fetch | Buscar as alterações, mas não aplica-las no branch atual |
git clone [email protected]:leocomelli/curso-git.git | Clonar um repositório remoto já existente |
git tag vs-1.1 | Criando uma tag leve |
git tag -a vs-1.1 -m "Minha versão 1.1" | Criando uma tag assinada |
git tag -a vs-1.2 9fceb02 | Criando tag a partir de um commit (hash) |
git push origin vs-1.2 | Criando tags no repositório remoto |
git push origin --tags | Criando todas as tags locais no repositório remoto |
git branch nome-da-branch | Criando um novo branch |
git checkout nome-da-branch | Trocando para um branch existente |
git checkout -b nome-da-branch | Criar um novo branch e trocar |
git checkout master | Voltar para o branch principal (master) |
git merge nome-da-branch | Resolver merge entre os branches |
git branch -d nome-da-branch | Apagando um branch |
git branch | Listar branches |
git branch -v | Listar branches com informações dos últimos commits |
git branch --merged | Listar branches que já foram fundidos (merged) com o master |
git branch --no-merged | Listar branches que não foram fundidos (merged) com o master |
Recomendado Acese: Canal do Youtube
Para corrigir ou adicionar algum comando fique avontade para fazer fork! pull-request-me!