Este Guia foi criado para auxilia-los no aprendizado sobre o Git e GitHub.
Sempre há espaço para melhorar! Envie-nos comentários e sugestões!
- Videos de Referência
- Antes de Começar
- Git
- Github
- Como criar seu portfolio de projetos?
- Como criar pontos na história da produção do seu projeto?
- Como verificar mudanças feitas no seu projeto?
- Como começar uma nova funcionalidade no seu projeto, sem estragar o que já foi feito?
- Como adicionar as novas funcionalidades ao seu projeto em produção?
- Como pegar um projeto já iniciado, para trabalhar com em equipe?
- Como resolver um conflito entre arquivos?
- Como, antes de enviar a resolução do conflito, atualizar o projeto local?
- Como voltar um arquivo para um determinado momento da linha do tempo?
- Como recuperar algo deletado?
- Resumo dos comandos principais do Git
- Developers
Descrição | Link |
---|---|
Link do GIT: | Git |
Link da Biblioteca do Git para saber mais sobre esta ferramenta: | Book |
Link do GIT para download: | Downloads |
Link para um outro curso: | Katacoda |
Definição Software livre (Open Source) para controle de arquivos num projeto em geral, ou em outras palavras, controlador de versionamento distribuído, aqui chamados de versionadores de código.
Função Organizar, distribuir e gerenciar as várias versões de um software. Ou seja, é um repositório na nuvem.
Utilização Para utilizar, precisa-se baixar por meio da página:
Conflitos Eventualmente podem existir conflitos de códigos, que nada mais são áreas de códigos onde um ou mais programadores alterara e que agora precisam ser revisados. Os conflitos que o Git não consegue resolver, ele marca com um bloco visual.
Definição ⇒ Servidor na nuvem que armazena seus códigos e possui uma interface amigável (Em outras palavras, é um Repositório de Gits).
Além de GitHub temos: GitLab, BitBucket.
Seu cartão de visita é o GitHub, por isso é importante ter um repositório de código bem atualizado e organizado.
Basicamente a estratégia é documentar no arquivo README.md, o qual é o arquivo padrão exibido ao acessar seu repositório e o código do projeto, e que todas as pessoas poderão lê-lo. Lembrando que neste arquivo você explica o seu projeto de forma não muito técnico, focado no visual e na compreensão do que se trata seu código. | Exemplo de README.md muito bem criado. Autoria de: |
Primeiro, antes de mais nada, devemos iniciar o Git usando o comando:
Git init
Depois, "tocamos" o arquivo para definir a data e hora (tempo) que aquele arquivo foi modificado:
Git touch
Caso o terminal esteja muito poluído, basta dar o comando de limpar:
Clear
Por exemplo, para registrar quando você iniciou essa landing page basta dar o comando:
Git add landingpage.html
Após adicionar os pontos na história do seu projeto, há necessidade de juntar as alterações para que seja enviado ao repositório. Ou seja, ele vai criar um ponto na história do projeto.
Git commit -m "Added landing page."
Para ver os pontos da história deste projeto (os Commits)
Git log
Git status
Mostra o estado do meu projeto.
Se queremos ver o que foi feito em um momento da história, precisamos, primeiro, identificar o momento e depois visualizar ele. A identificação é uma sequencia de caracteres ao lado de commit (sublinhado em vermelho na imagem abaixo) que aparece com o comando git log:
Depois, aplicamos o comando:
Git show [insira aqui o código numerico]
Se eu quiser ver o ultimo ponto da história, basta colocar o comando:
>*Git show*
São a possibildiade de criar "universos" paralelos de seu projeto. Por padrão, seu projeto é criado como "master"
Suponhamos que um cliente pediu para você adicionar um carrinho de compras.
Assim, começaremos a construir o código em um branch (um ramo) do projeto para que o original não seja afetado (em caso de algum erro!). Para criar o novo branch, utilize o código abaixo:
Git branch [nome da branch]
Para mudar para essa branch, usamos o comando:
Git checkout [nome da branch]
Para confirmar novamente, é válido ir no Git status:
Para voltar para a master, é só usar o comando Git checkout master.
Para visualizar todos as ramificações criadas, basta digitar:
Git branch
Seguido os passos acima, foi criado uma pagina html chamada de cart e escrito carrinho em produção. Foi, também, registrado na branch. Veja o log como fica com branch:
Quer ter certeza se não foi feito alteração no seu ramo principal? Use o comando abaixo e veja os arquivos nele presente (veja que não consta o cart.html):
Git ls -all
OBS: LS ⇒ List, assim, o comando significa: list all
Fez as alterações na ramificação, gostou, aprovou? Hora de trazer para o projeto principal (master). Para isso, deve-se utilizar o comando:
Git merge [nome da branch]
- Você quer deletar a branch da nova funcionalidade, depois de aplicar em seu projeto.
Migrou a ramificação pro master com sucesso? projeto aprovado? hora de deletar a branch para não haver ruídos:
Git branch -D [nome da branch]
- Você quer colocar seu projeto na nuvem (Github).
Primeiro acesse o GitHub e crie sua conta/faça login.
Após isso, clique em "Create Repository" caso ainda não tenha criado:
Preencha com o nome do repositório e com uma descrição e siga para a próxima tela.
Como já temos um "Readme.md", utilizaremos:
Para ver seus repositórios remotos, utilize:
Git remote -v
Para fazer o upload do repositório local para o repositório online, utilize o comando:
Git push
Como é a primeira vez que fazemos o push, temos que criar a branch master:
Git push -u origin master
Caso seja a primeira vez que esteja fazendo o upload, é possivel que seja solicitado login e senha do GitHub.
Vejam acima que não há o arquivo README.md. Precisamos adicionar ele ao branch e fazer upload novamente.
Agora sim, com Readme:
Para isso, precisamos pegar o link no GitHub. Encontre o projeto e obtenha o link. No exemplo, usaremos o GitHub da Rocketseat:
Após copiar o link, utilize o comando abaixo:
Git clone [link copiado]
Normalmente, quando se trabalha com ramificações (Branches) é comum termos conflitos de arquivos para se tratar. Isso significa, por exemplo, que uma modificação num arquivo chamado, digamos, package.json da branch, corre o risco de subscrever uma modificação feita na mesma linha na Master.
Assim devemos arrumar esses conflitos. Veja a sequencia de eventos nas imagens abaixo. Modifiquei o arquivo "Cart.html" na branch Master e na Branch nova chamada conflito. Importante informar que o Git avalia conflitos na mesma linha, assim, no testo a linha 2 é a que possui conflito.
Tela onde o VS Code realça o conflito:
No caso, como há conflitos, o próprio Git nos ajuda com opções de aceitar a mudança presente na ramificação Master, aceitar a da ramificação Conflito, aceitar ambas as alterações, comparar as alterações ou, caso tenha dúvidas, iniciar uma sessão de compartilhamento remoto para que outro programador auxilie com este conflito.
Para fim deste exercício, aceitaremos a mudança presente na Master:
agora que resolvemos o conflito, há necessidade de atualizar a página e o projeto para que possamos subir no GitHub as atualizações:
Digamos que alguém (ou você) alterou algo no GitHub (por meio de Git push, por exemplo) e você quer atualizar o projeto local. Primeiro, vamos ver como alterar um arquivo, digamos, o Readme.md no GitHub:
Após alteração, submeter o commit:
É importante sempre verificar isso quando trabalhando em equipe para não criar conflitos ou perda de dados, assim, sempre puxe as atualizações do GitHub para somente então subir suas alterações.
Vamos supor que os ajustes em seu código deram muito errado. Felizmente, se você salvou seguindo as instruções acima, é possível voltar um arquivo para um determinado momento da linha do tempo. Primeiramente identifique a etapa do tempo que deseja restaurar e obtenha o código desta linha de tempo:
Para restaurar, basta utilizar o comando abaixo:
Git checkout [sequencia numérica] -- [nome do arquivo não esqueça de incluir a extensão!]
E se um arquivo inteiro foi eliminado? Digamos que tenhamos um arquivo chamado cart.html e esse foi eliminado. Para restaurar, basta usar o código abaixo:
Git checkout -- [nome do arquivo não esqueça de incluir a extensão!]
- Você precisa mudar de diretório.
Para mudar de diretório, utilize o comando:
cd [nome do folder]
OBS: cd ⇒ change directory.
git init
inicia a linha do tempo;
git add
adiciona ou atualiza mudanças para irem para a linha do tempo, atualizando os arquivos nos commits;
git commit -m "mensagem"
adiciona um ponto na l;inha do tempo
git log
visualiza os pontos na linha do tempo / commit;
git status
informa o estado das alterações do nosso projeto;
git show
apresenta determinado ponto na história;
git branch
gerenciar novas linhas do tempo;
git checkout
manipula as linhas do tempo;
git merge
unir linhas do tempo;
git push
envia alterações locais para o repositório remoto (Github);
git clone
Baixar o projeto a primeira vez na sua máquina, ou seja, clonar um projeto / repositório;
git pull
puxa/recebe o código atualizado do repositório remoto;
Estas pessoas contribuiram para o Readme.md ser o mais completo possível!
Lucas Gonçalves | Daywison Silva |
---|---|
Owner | Supporter |
LinkedIn |
LinkedIn |
GitHub |
GitHub |