Git e Github

Prof. Jesiel Viana

@jesielviana

## Contexto - O desenvolvimento de software geralmente é realizado em equipe, com a colaboração de vários desenvolvedores, que em muitos casos estão trabalhando em um mesmo projetos de locais e horários diferentes uns dos outros; - Sofware é desenvolvido seguindo o sistema de versões, 1.0, 1.1, 2.0, etc; - Software precisa de manutenção.
## Problema - Como juntar o código de diversos programadores em um mesmo projeto? - E se mais de um programador alterar um mesmo arquivo? - Como separara o código da versão que está em produção da versão que está em desenvolviemnto? - Como manter um histórico de modificações do software, do arquivo? - Como Gerenciar as versões?
## Git Sistema de controle de versão que permite integrar as modificações de diversos colabordores em um única base de código, fazendo o controle de modificações e conflitos. Além disso, cria todo histórico de alterações no código do projeto, permitindo facilmente voltar para qualquer ponto para saber como o código estava naquele momento [1].
## Git É um sistema open-source de controle de versão, sendo o mais utilizado pelos desenvolvedores atualmente. Foi desenvolvido em 2005 por Linus Torvalds, o famoso criador do kernel do sistema operacional Linux [2]. [Repositório do Git](https://github.com/git/git)
## Github GitHub é uma plataforma de hospedagem de código (repositórios Git) para controle de versão e colaboração. Ele permite que você e outras pessoas trabalhem juntos em projetos de qualquer lugar [4]. Além de servir como hospedagem, o Github possui muitas integrações com serviços que auxiliam no deploy da aplicação através de integração contínua [3].
# Principais Comandos

init e clone

Para começar a usar o git para gerenciar as versões de um sistema devemos executar um dos seguintes comandos: init ou clone [5].

O comando init cria um repositório vazio.

git init

O comando clone, clona(copia código e histórico) para o diretório corrente um repositório armazenado remotamente, por exemplo: um repositório do GitHub.

git clone https://github.com/NOME-USER/NOME-REPO

add e commit

git add 'arquivo' ou git add . => '.' = todos os aquivos
git commit -m "msg"
				
Fluxo Git de add e commit

Fonte: [5]

push e pull

O comando push copia os commits mais recentes do repositório local para o repositório remoto.

Já para atualizar seu repositório local, os outros desenvolvedores do time devem executar um comando pull [5].

Fluxo Git de pull e push Fonte: [5]
## Glossário Git - **Branch** - ramificação - **Tag** - é uma marcação que aponta para um momento específico no histórico do Git.
## Lista de comandos Git [Link](https://gist.github.com/jesielviana/79b444d60933248e649d45e4ebbf0fb5)
## Referências. 1. https://git-scm.com/book/pt-br/v2 1. https://www.atlassian.com/br/git/tutorials/what-is-git 1. https://blog.rocketseat.com.br/iniciando-com-git-github/ 1. https://guides.github.com/activities/hello-world/ 1. https://engsoftmoderna.info/capAp.html

Git e Github

@jesielviana

Fim!