Curso básico destinado aos iniciantes em Git.
O Git pode ser descrito como uma série de comandos que manipulam os arquivos de um repositório. A colaboração entre os desenvolvedores é feita através do versionamento e da mesclagem dos dados alterados. Essa tecnologia facilita as etapas de criação e manuntenção de projetos de pequeno e grande porte.
GIT e GITHUB são coisa diferentes. Imagine que o Git funciona como o PYTHON (Ou seja, como uma linguagem mesmo, que faz o que você digita) e o GITHUB como o GoogleDrive. O GIT faz a comunicação e o Github armazena os arquivos.
Versionamento, como o nome sugere, é ter varias versões de algo. Desse modo, é possível ter diversas versões de um mesmo sistema para a alteração de coisas diferentes. No Git, cada versão recebe o nome de branch.
O versionamento do GIT é divido em estágios dentro de uma Branch. Ou seja, suas modificações estarão com o estado "Alterada" (modified), "Preparada" (staged), "Escrita" (commited) ou já estarão presentes na plataforma de armazenamento (após a execução do comando "git push")
Onde o desenvolvedor terminou seu trabalho e o arquivo está modificado.
Nessa etapa o desenvolvedor confirma todas as modificações e se prepara para o commit.
Aqui é onde o desenvolvedor resume em uma frase curta e objetiva o que foi feito exemplo: "fix: Corrigido o erro de 403".
Finalmente o desenvolvedor coloca seu trabalho na nuvem (plataforma de armazenamento) para salvar suas alterações e finalizar seu dia de trabalho!
Os commits são como estiquetas de modificações. Resumindo de forma breve, o que foi corrigido ou desenvolvido naquela micro-etapa do desenvolvimento do projeto.
Branches são como clones do mesmo projeto, independentes. Imagine 2 desenvolvedores, um que desenvolve o frontend e outro o backend. Para que seja possível o desenvolvimento simultâneo dos 2 devs, serão criadas duas BRANCHES uma com o nome "frontend-manutencao" e outra "backend-manutencao". Desse modo, cada desenvolvedor faz sua parte e juntam seu trabalho no final, otimizando e dividindo de maneira eficiente e fácil o seu desenvolvimento.
Comandos Basicos que você pode utilizar
Utilizado para iniciar o git no seu repositório
git init
Utilizado para baixar um projeto já criando no Github ou outra plataforma. O comando deve conter a URL do projeto.
git clone URL
Utilizado para criar uma nova branch.
git branch NOME_DA_BRANCH
Comando utilizado para a troca de branch.
git checkout NOME_DA_BRANCH
Para deletar uma branch local. Você precisa estar em outra branch, para isso (Utilizar "git checkout") e depois use
git branch -d NOME_DA_BRANCH
Para apagar uma branch que fica na nuvem, utilize o comando
git push origin --delete NOME_DA_BRANCH
Para o desenvolvedor ver os aquivos modificados
git status
Adiciona o estado "preparado" (staged) para os arquivos indicados
git add NOME_DO_ARQUIVO ou NOME_DA_PASTA
git commit -m "FRASE DE EXEMPLO"
git fetch
o git fetch funciona como um refresh na página, atualizando as informações que foram modificadas na nuvem e exibindo os commits que devem ser "puxados" (através do pull)
O git pull é responsavel por baixar as alterações da nuvem
git pull
Comando utilizado depois de todo o processo, para enviar seu desenvolvimento para nuvem e finalizar o seu dia de trabalho!
git push
Esse comando irá "copiar e colar" as alterações da branch selecionada para a atual. O Desenvolvedor terá que resolver os conflitos caso hajam.
git merge NOME_DA_BRANCH
Não efetua a mesclagem, apenas substitui as alterações de uma branch por outra.
git rebase NOME_DA_BRANCH
Para voltar um erro o reverter o que foi feito, primeiro devemos obter o hash (id) do commit:
git log
e então usamos:
git revert ID_DO_COMMIT
Muito cuidado com esse comando principalmente se já foi dado push, pois vai alterar a linha do tempo para todos os desenvolvedores. Primeiro, utilizamos o "git log" para identificar a hash do commit. Após isso, utilizamos:
git reset ID_DO_COMMIT
Todos os commits a frente dele serão apagados. Temos tambem
git reset --hard ID_DO_COMMIT
que apagará todos os arquivos.
E por fim:
git reset --soft ID_DO_COMMIT
que irá deixar todas as alterações para escolher novamente qual vamos commitar.
git rebase -i --root -x "git commit --amend --author='YOUR_USERNAME user@example.com --no-edit'"
Primeiro deletaremos ultimo commit
git reset --soft ID_DO_COMMIT
Depois, usamos o seguinte comando para salvar no stash ("stash" é como se fosse um backup das suas alterações):
git stash
Depois usamos esse comando para atualizar a branch:
git pull
e por último, utilizamos o seguinte comando para voltar as alterações guardadas no stash:
git stash pop