Domine Git e GitHub

Seu Guia Completo para Controle de Versão e Colaboração de Código!

Bem-vindo ao nosso guia! Aqui, você descobrirá tudo o que precisa saber sobre Git e GitHub, desde os conceitos básicos até as práticas avançadas. Se você deseja dominar o controle de versão e melhorar sua colaboração em projetos, está no lugar certo. Explore nossos tutoriais, dicas e truques para levar suas habilidades ao próximo nível. Comece agora e transforme a forma como você gerencia seus códigos!.

Logotipo do site Git Academy

GitHub

Crie uma conta no GitHub

Para começar a usar o GitHub, será necessário criar uma conta pessoal gratuita

Pra isso, siga os passos:

1. Navegue até a página do GitHub.

2. Clique em Inscreva-se.

3. Siga os próximos passos

4. Verifique seu e-mail

5. Pronto! Foi criado sua conta com sucesso!

Criando seu 1º repositório

Agora que possui uma conta, você poderá criar seu próprios repositórios e começar a ter um repositório remoto e ter controle das versões dos seus futuros projetos

Para ter um tutorial completo e com imagens, sugerimos que siga as orientações que estão que estão no site do GitHub ou siga o tutorial do vídeo da nossa seção 'Veja na prática'

Vantagens e Desvantagens

O GitHub é uma plataforma muito popular entre desenvolvedores por várias razões. Confira algumas vantagens e desvantagens de utilizá-lo:

Vantagens

  • Facilita o trabalho em equipe
  • Integração com outras Ferramentas
  • Comunidade ativa

Desvantagens

  • Falta de Suporte para Algumas Linguagens e Frameworks
  • Dependência da Conectividade com a Internet

Git

Comandos Descrição
init Inicia um repositório vazio na pasta atual, criando um diretório oculto .git com subdiretórios para objetos, referências e arquivos de template. Este é, geralmente, o primeiro comando a ser executado ao iniciar um novo projeto.
clone Cria uma cópia de repositórios remotos. Usado geralmente para obter um clone de desenvolvimento local a partir de um repositório Git de origem.
add Adiciona mudanças feitas nos arquivos ao stage (área de preparação), preparando-os para serem incluídos no próximo commit.
commit “Captura” o estado do projeto naquele momento a partir das mudanças adicionadas ao stage, criando um ponto ao qual se pode retornar posteriormente. A execução desse comando abrirá um editor de texto para que um comentário seja escrito a respeito do commit. Essas capturas (commits) formam um histórico do projeto e podem ser acessadas a qualquer momento.
checkout Permite a alternância entre versões diferentes de arquivos, commits e ramificações.
git checkout 'identificador' atualizará os arquivos no diretório atual para que fiquem iguais às suas versões na ramificação ou commit especificado.
branch Utilizado para listar, criar e deletar ramificações do projeto. Branches (ou ramificações) são linhas independentes de desenvolvimento, que, quando criadas, compartilham o mesmo histórico da ramificação da qual derivam.
git branch git branch [nome-da-branch] git branch -d [nome-da-branch]
Exibe uma lista das ramificações atuais do projeto. Cria uma ramificação com o nome especificado. Exclui a ramificação com o nome especificado.
merge Integra as ramificações criadas pelo git branch em uma ramificação única. A ramificação atual será atualizada para incorporar as atualizações criadas pelo comando, enquanto a ramificação alvo permanecerá inalterada.
remote Permite criar, ver e excluir conexões de seu repositório local com um ou mais repositórios remotos.
git remote add 'nome' 'URL' git remote rm 'nome' git remote rename 'nome-antigo' 'nome-novo'
Cria uma conexão com um repositório remoto indicado pela URL, criando um nome de referência que poderá ser utilizado em chamadas posteriores dessa conexão. Exclui uma conexão com o repositório remoto referenciado por “nome”. Renomeia a conexão anteriormente indicada por “nome-antigo” com “nome-novo”.
fetch Baixa as últimas atualizações de commits, arquivos e referências de um repositório remoto ao qual se está conectado para seu repositório local, sem integrá-lo ao seu diretório. Deve ser seguido do comando “git checkout” para acessar o conteúdo baixado.
show Seguido do parâmetro [commit], exibe informações a respeito de um commit, tais como as alterações introduzidas por ele no histórico, o nome do autor, a data e hora de sua criação, seu comentário etc. Também pode ser usado para detalhar outros objetos, como arquivos e tags.
push Envia commits de um repositório local para um repositório remoto. Após um repositório local ter sido modificado, um comando “push” compartilha suas modificações com os membros da equipe remota.
Seguido dos parâmetros [remote] [branch], envia a ramificação especificada junto com todos os commits e objetos internos necessários. Isso cria uma ramificação local no repositório de destino.
pull Busca e baixa repositórios remotos, atualizando o repositório local para que ele seja igual ao repositório baixado. A diferença entre git fetch e git pull é que este faz o merge automático do repositório remoto baixado com o repositório local.
revert Cria um novo commit revertendo as alterações de um commit antigo especificado, mantendo o histórico do projeto. Os indicadores de referência são atualizados para apontar para o commit de reversão novo, colocando-o na ponta da ramificação.
stash Arquiva alterações feitas em seu diretório que ainda não foram submetidas ao commit, permitindo que outras ramificações ou commits sejam acessados sem perder as alterações feitas anteriormente, que podem ser acessadas pelos seguintes comandos:
git stash apply git stash pop
Reaplica as mudanças arquivadas pelo git stash anterior, mantendo-as ainda arquivadas no stash. Reaplica as mudanças arquivadas pelo git stash anterior, limpando a lista de stash.
status Exibe informações a respeito do status atual do seu repositório e dos arquivos em relação à ramificação atual. As informações exibidas são:

Em qual ramificação do projeto você está trabalhando no momento.

Todas as mudanças que foram feitas e que estão prontas para serem submetidas ao commit.

As mudanças feitas nos arquivos que ainda não foram adicionadas.

Os arquivos existentes no diretório de trabalho sobre os quais o Git ainda não foi informado.

Caso seu repositório esteja conectado a um repositório remoto, informa se sua ramificação local está atrás ou à frente do branch remoto.
diff Exibe uma listagem das diferenças entre duas versões do projeto (commits, ramificações etc.)
git diff git diff [commit_1] [commit_2] git diff [arquivo]
Mostra as diferenças entre os arquivos no seu diretório e os arquivos no stage. Exibe as diferenças entre dois commits específicos. Exibe as diferenças de um arquivo específico entre seu diretório e o stage.
rm Remove um ou mais arquivo(s) do repositório, atualizando o índice de staging e o diretório de trabalho. Essa mudança só será salva no histórico de commits, contudo, quando o comando commit for executado.
config Quando utilizado com parâmetros específicos, permite a alteração de configurações do Git, cuja listagem pode ser acessada pelo comando git config –-list. Algumas das opções que podem ser alteradas são:
git config --global user.name "nome" git config --global user.email "e-mail" git config --global core.editor [editor]
Configura o seu nome de usuário no Git. Configura o seu e-mail. Altera o editor de texto padrão do Git. O editor de texto será utilizado para fazer comentários nos commits.
blame Exibe os metadados do autor anexados a linhas de commits específicas em um arquivo, possibilitando assim que sejam acessíveis informações a respeito do responsável pela modificação de uma parte do arquivo em um commit. Esse comando funcionará apenas seguido do nome do arquivo, exibindo-o assim linha a linha com seus metadados.
tags Cria, lista e exclui tags. Tags são utilizadas para marcar versões (commits) importantes no histórico de um projeto. Ao contrário das ramificações, tags não possuem histórico posterior após sua criação.
git tag git tag [nome] git tag [nome] -m "mensagem" git tag -d [nome]
Exibe uma lista das tags do repositório. Cria uma tag com o nome especificado para marcar o commit em que o comando foi chamado. Cria uma tag anotada com "mensagem". Exclui uma tag.
help Lista informações e descrições dos comandos Git disponíveis. Caso seja inserido o nome de um comando como parâmetro, abre uma descrição detalhada do comando.
reset Desfaz alterações em arquivos, commits e stage.
git reset [arquivo] git reset HEAD [arquivo] git reset HEAD~1 git reset --hard HEAD~1
Remove um arquivo do stage, mantendo-o inalterado no diretório. Restaura o arquivo no seu diretório a partir de sua versão salva no stage. Desfaz o último commit, mantendo os arquivos inalterados em seu diretório. Desfaz o último commit, removendo de seu diretório as alterações feitas por ele.
rebase Altera o histórico do projeto, alterando a base da ramificação atual para um outro commit, de outra ramificação, cujo nome é passado como parâmetro para o comando.

git rebase [nome-do-commit]

Veja na prática

Google Drive