Coder Social home page Coder Social logo

git-tutorial's Introduction

Git

Git - Iniciando em Controle de Versão

Este arquivo foi escrito em abril de 2020

O que é Controle de Versão?

É uma categoria de ferramentas de software que ajuda um time de software a gerenciar mudanças no código fonte ao longo do tempo. O software de controle de versão controla todas as modificações no código em um tipo especial de banco de dados. Se um erro for cometido, os desenvolvedores podem voltar no tempo e comparar versões anteriores do código para ajudar a corrigir o erro e minimizar a interrupção para todos os membros da equipe.

O que é Git?

De longe, o sistema de controle de versão moderno mais usado no mundo hoje é o Git. O Git é um projeto de código aberto, mantido ativamente, originalmente desenvolvido em 2005 por Linus Torvalds, o famoso criador do kernel do sistema operacional Linux.

Tendo uma arquitetura distribuída, o Git é um exemplo de DVCS (portanto, Sistema de Controle de Versão Distribuído). Em vez de ter apenas um único local para o histórico completo da versão do software, como é comum em sistemas de controle de versão outrora populares como CVS ou Subversion (também conhecido como SVN), no Git, a cópia de trabalho de todo desenvolvedor do código também é um repositório que pode conter o histórico completo de todas as alterações.

Inciando no Git

1. Repositório

Um repositório git é a pasta .git/ dentro de um projeto. Este repositório vai mapear todas as mudanças feitas nos arquivos dos seus projetos, construindo um histórico ao longo do tempo. Isso significa que se você deletar a pasta .git/, automaticamente todo o histórico de mudanças de seu projeto será deletado.

Além disso, existem dois tipos de repositório no git, o local e o remoto:

  • O local é o repositório que fica na sua máquina de trabalho. Ele é criado utilizando o comando git init dentro da pasta do projeto.
  • O remoto fica em um servidor como GitHub, GitLab, BitBucket, entre outros.

Git

2. Branch

A Branch é uma ramificação do seu projeto.

Pense no seguinte: você é o desenvolvedor de um site e recebe a tarefa de adicionar uma nova página no mesmo.

Para não causar problemas no site que as pessoas utilizam, você cria uma ramificação do site (branch master) no seu computador (branch local de desenvolvimento) para então adicionar as mudanças. Ao terminar o seu trabalho, você simplesmente envia suas mudanças para o site, devolvendo a sua ramificação de volta para sua origem.

Git

3. Stage e Commit

Colocar um arquivo em stage significa que ele está pronto para ser enviado ao repositório. Você faz isso utilizando o comando git add nome_arquivo. O Git permite que você entregue somente as partes de sua alterações que estão prontas. Isso se chama colocar um arquivo em stage.
Após colocar os seus arquivos em stage está na hora de fazer o commit. Ao fazer um git commit -m "mensagem_do_commit" você está enviando todas as mudanças que estão em stage para o repositório local.

Git

4. Histórico

Utilizando o comando git log conseguimos ver todos os commits feitos dentro do seu repositório, mostrando a data e o autor do mesmo.

Git

4. Pull

Assim como podemos enviar nossas modificações para um repositório remoto, podemos atualizar o nosso repositório local com a versão mais atual do repositório remoto. Conseguimos fazer isso utilizando o comando git pull.

5. Merge

É o ato de fundir duas branches (ramificações). Quando você terminar o seu trabalho, você irá fazer um git merge para fundir a sua branch com a branch master.

Git

Mão na Massa!

Depois de toda essa aula teórica, imagino que você gostaria de algo mais prático não?

Pois então, criei alguns pequenos tutoriais abordando todos os conceitos acima:


  1. Instalando e configurando o Git
  2. Criando um Repositório Git Local
  3. Fazendo Modificações
  4. Conferindo o Status do repositório
  5. Colocando as Modificações em Stage e Fazendo Commit
  6. Comparando e Desfazendo Modificações
  7. Criando um Repositório Remoto
  8. Enviando as Modificações para o Repositório Remoto
  9. Fazendo Modificações Diretamente no Repositório Remoto
  10. Atualizando o Repositório Local

Desafio

Agora está na hora de colocar tudo o que você aprendeu em prática. Criamos um desafio simples, porém irá exigir que você clone um repositório localmente, altere um arquivo, adicione esse arquivo em stage, utilize o commit e por fim o push para enviar as mudanças para o servidor.


O objetivo é adicionar o seu nome no seguinte arquivo: NAMES.md.


Para fazer isso você vai precisar seguir esses passos:

  1. Realize um Fork deste projeto clicando no botão Fork no parte superior direita desta página.
  2. Clique em Clone or download e copie a url
  3. Em uma pasta em seu computador, abra o Git Bash e digite ´git checkout´ junto da url copiada
$ git checkout https://github.com/seu_usuario_git/git-tutorial.git
  1. Entre na pasta recém criada, git-tutorial e adicione o seu úsuario do GitHub no arquivo NAMES.md.
  2. Envie suas alterações para o seu repósitório Fork
$ git add .
$ git commit -m "Adicionei o meu usuário github"
$ git push
  1. Volte para esta página e clique em Pull Requests na parte superior.
  2. Crie um novo Pull Request clicando em New pull request e onde diz compare: selecione o repositório fork que você criou.
  3. Envie o Pull Request. Se tudo estiver correto um moderador irá aprovar e o seu nome irá aparecer no NAMES.md

Autores

  • Felipe Almeida - Fundador do GoHorse Coding e Engenheiro de Software

Agradecimentos especiais

Todos nessa lista contribuiram de alguma forma seja revisando, achando sinônimos. Basicamente alguma coisa que tornou o tutorial mais simples de se ler :)

Referências

git-tutorial's People

Contributors

alineleticia avatar dliedke avatar felipe-allmeida avatar felipeallmeida avatar lucaslopes-commits avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.