Controle de Versão com – Git e Github – Mas afinal de contas o que é o Git?



Controle de Versão com – Git e Github – Mas afinal de contas o que é o Git?

0 0


controle-de-versao-com-git-github-conceitos-basicos

Controle de Versão com Git e Github - Introdução aos Conceitos Básicos

On Github viniciusaires / controle-de-versao-com-git-github-conceitos-basicos

Controle de Versão com

Git e Github

(Conceitos Básicos)

Criado por @viniciusaires / @herodrigues rev 1.0.1 - 02/2017

Licença

Esta apresentação está licenciada com uma Licença Creative Commons - Atribuição 4.0 Internacional. Podem estar disponíveis autorizações adicionais às concedidas no âmbito desta licença em viniciusaires7/minicurso-controle-de-versao-com-git-github.

Vinícius Aires Barros

Desenvolvedor Web e Android GitHub: @viniciusaires

Herinson Rodrigues

Desenvolvedor Web GitHub: @herodrigues

Mas afinal de contas o que é o Git?

Git é um sistema de controle de versão distribuído e um sistema de gerenciamento de código fonte com ênfase em velocidade, integridade de dados e suporte para workflows não lineares distribuídos.

Mas afinal de contas o que é o Git?

Igualmente a vários outros sistemas de controle de versão distribuída, e diferente da maioria dos sistemas cliente-servidor, qualquer diretório Git é um repositório totalmente desenvolvido com um completo histórico de controle de versão independente de acesso à internet ou de um servidor central

Mas afinal de contas o que é o Git?

O Git é muito utilizado em diversas empresas de desenvolvimento e funciona muito bem na maioria dos projetos, independentemente do tamanho do projeto ou do seu tipo. Ou seja praticamente todos os projetos que você irá desenvolver você poderá usar o Git como ferramenta de controle de versão.

Uma breve história sobre o GIT

Git foi inicialmente projetado e desenvolvido por Linus Torvalds para o desenvolvimento do kernel do Linux em 2005

Software Livre

Assim como o Kernel do Linux, Git é um software livre distribuído sob a GNU GPLv2

GUIs para Git

SmartGIT (Multiplataforma)

GUIs para Git

GitHub Desktop (Windows e OSX)

GUIs para Git

Source Tree (Windows e OSX)

Serviços similares ao GIT

Mas afinal de contas o que é o GitHub?

GitHub é um serviço web de hospedagem compartilhada para projetos que usam o controle de versão Git. Ele oferece todos os tipos de controle distribuído de versão e funcionalidades de gereciamento de código-fonte (SCM) do Git assim como diversas outras funcionalidades.

Mas afinal de contas o que é o GitHub?

Ao contrário do Git, que é basicamente restrito à linha de comando, o Github oferece interface gráfica para web assim como para desktop e integração mobile. O Github também possui diversas funcionalidades de controle de acesso e colaboração tais como bug tracking, requisição de funcionalidades, gerencimento de tarefas e wikis.

Mas afinal de contas o que é o GitHub?

O Github oferece tanto planos privados como contas grátis que são geralmente utilizadas para hospedar projetos de software livre. Além disso, o Github oferece planos grátis para estudantes que possuem email institucional ativo. Em 2015, o Github informou ter mais de 9 milhões de usuários e mais de 21.1 milhões de repositórios, sendo assim o maior serviço de hospedagem de código-fonte no mundo!

Website GitHub

Acessem: https://github.com/

Uma Breve História sobre o GitHub

O desenvolvimento da plataforma Github começou em 1° de outubro de 2007. O site foi lançado em abril de 2008 por Tom Preston-Werner, Chris Wanstrath, and PJ Hyett depois de ter ficado por alguns meses no ar em fase beta.

Criadores do GitHub

  • Tom Preston Werner e Chris Wanstrath
  • PJ Hyett e Scoth Chacon

Serviços similares ao GitHub

Mas por que usar o Git e GitHub?

  • Utilizar em projetos individuais ou em grupo
  • Fazer controle de versão de arquivos pessoais
  • Controlar arquivos de exercícios feitos em sala de aula
  • Empresas cada vez mais olham os perfis de seus candidatos no GitHub

Como instalar o GIT?

GNU LINUX
$ sudo apt-get install git -y
OSX
$ brew install git
Windows Baixar o instalador do GIT

Primeiros Passos

Criando pasta do projeto
$ mkdir primeiro_projeto
Acessando diretório da pasta do projeto
$ cd primeiro_projeto/
Inicializando o GIT no diretório
$ git init

Adcionando o primeiro arquivo

Criando arquivo index.html
$ echo "Hello World" > index.html
Verificando status dos arquivos no diretório do projeto
$ git status
Adcionando todos os arquivos ao index git
$ git add * #git add .
Criando o primeiro commit referente ao projeto
$ git commit -m "primeiro commit hello world"

Criando uma conta no Github

Primeiramente vamos acessar o site oficial do Github em https://www.github.com

Documentação/Livros

Comandos básicos do GIT

git init git status git clone git add git rm git commit git log git push git pull

Comando git init

git-init - Cria um repositório (dirtório) Git vazio ou inicializa um novo

Possíveis comandos

git init [-q | --quiet] [--bare] [--template= ] [--separate-git-dir ] [--shared[= ]] [directory]
referência na documentação do git

Comando git status

git-status - Exibe o status da árvore de trabalho

Possíveis comandos

git status [ …​] [--] [ …​]
referência na documentação do git

Comando git add

git-add - Adciona arquivo(s) ao index

Possíveis comandos

git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p] [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--] [ …​]
referência na documentação do git

Comando git rm

git-rm - Remove arquivos da árvore de trabalho e do index

Possíveis comandos

git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] …​
referência na documentação do git

Comando git commit

git-commit - Gravar mudanças no repositório

Possíveis comandos

git commit [-a | --interactive | --patch] [-s] [-v] [-u ] [--amend] [--dry-run] [(-c | -C | --fixup | --squash) ] [-F | -m ] [--reset-author] [--allow-empty] [--allow-empty-message] [--no-verify] [-e] [--author= ] [--date= ] [--cleanup= ] [--[no-]status] [-i | -o] [-S[ ]] [--] [ …​]
referência na documentação do git

Comando git clone

git-clone - Clona um repositório em um novo diretório

Possíveis comandos

git clone [--template= ] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o ] [-b ] [-u ] [--reference ] [--dissociate] [--separate-git-dir ] [--depth ] [--[no-]single-branch] [--recursive | --recurse-submodules] [--] [ ]
referência na documentação do git

Comando git push

git-push - Atualiza referências remotas do repositório git

Possíveis comandos

git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack= ] [--repo= ] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream] [--[no-]signed|--sign=(true|false|if-asked)] [--force-with-lease[= [: ]]] [--no-verify] [ [ …​]]
referência na documentação do git

Comando git pull

git-pull - Atualiza repositório local com as atualizações do repositório remoto

Possíveis comandos

git pull [options] [ [ …​]]
referência na documentação do git

Comando git log

git-log - Mostra logs commit

Possíveis comandos

git log [ ] [ ] [[\--] …​]
referência na documentação do git

Comandos Avançados do GIT

git branch git checkout git merge git diff git remote git tag git rebase git reset

Comando git branch

git-branch - Lista, cria, ou deleta branches

Possíveis comandos

git branch [--color[= < 'when'>] | --no-color] [-r | -a] [--list] [-v [--abbrev= < 'length'> | --no-abbrev]] [--column[= < 'options'>] | --no-column] [(--merged | --no-merged | --contains) [ < 'commit'>]] [ < 'pattern'>…​] git branch [--set-upstream | --track | --no-track] [-l] [-f] < 'branchname'> [ < 'start-point'>] git branch (--set-upstream-to= < 'upstream'> | -u < 'upstream'>) [ < 'branchname'>] git branch --unset-upstream [ < 'branchname'>] git branch (-m | -M) [ < 'oldbranch'>] < 'newbranch'> git branch (-d | -D) [-r] < 'branchname'>…​ git branch --edit-description [ < 'branchname'>]
referência na documentação do git

Comando git checkout

git-checkout - Alternar entre branch ou restaura arquivos da árvore de trabalho

Possíveis comandos

git checkout [-q] [-f] [-m] [ < 'branch'>] git checkout [-q] [-f] [-m] --detach [ < 'branch'>] git checkout [-q] [-f] [-m] [--detach] < 'commit'> git checkout [-q] [-f] [-m] [[-b|-B|--orphan] < 'new_branch'>] [ < 'start_point'>] git checkout [-f|--ours|--theirs|-m|--conflict= < 'style'>] [ < 'tree-ish'>] [--] < 'paths'>…​ git checkout [-p|--patch] [ < 'tree-ish'>] [--] [ < 'paths'>…​]
referência na documentação do git

Comando git merge

git-merge - Junta dois ou mais branch de desenvolvimento em conjunto

Possíveis comandos

git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] [-s < 'strategy'>] [-X < 'strategy-option'>] [-S[ < 'keyid'>]] [--[no-]rerere-autoupdate] [-m < 'msg'>] [ < 'commit'>…​] git merge < 'msg'> HEAD < 'commit'>…​ git merge --abort
referência na documentação do git

Comando git diff

git-diff - Mostrar modificações entre arquivos, commit e árvore de trabalho etc.

Possíveis comandos

git diff [options] [ < 'commit'>] [--] [ < 'path'>…​] git diff [options] --cached [ < 'commit'>] [--] [ < 'path'>…​] git diff [options] < 'commit'> < 'commit'> [--] [ < 'path'>…​] git diff [options] < 'blob'> < 'blob'> git diff [options] [--no-index] [--] < 'path'> < 'path'>
referência na documentação do git

Comando git remote

git-remote - Gerencia um conjunto de repositórios rastreados

Possíveis comandos

git remote [-v | --verbose] git remote add [-t < 'branch'>] [-m < 'master'>] [-f] [--[no-]tags] [--mirror= < 'fetch'| 'push'>] < 'name'> < 'url'> git remote rename < 'old'> < 'new'> git remote remove < 'name'>
referência na documentação do git

Comando git rebase

git-rebase - Integra mudanças de um branch em outro: o merge e o rebase

Possíveis comandos

git rebase [-i | --interactive] [options] [--exec < 'cmd'>] [--onto < 'newbase'>] [ < 'upstream'> [ < 'branch'>]] git rebase [-i | --interactive] [options] [--exec < 'cmd'>] [--onto < 'newbase'>] --root [ < 'branch'>] git rebase --continue | --skip | --abort | --edit-todo
referência na documentação do git

Comando git reset

git-reset - Desfaz mudanças em um branch

Possíveis comandos

git reset [-q] [ < 'tree-ish'>] [--] < 'paths'>... git reset (--patch | -p) [ < 'tree-ish'>] [--] [ < 'paths'>...] git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [ < 'commit'>]
referência na documentação do git

Comando git tag

git-tag - Cria, lista, exclui ou verifica um objeto tag assinado com GPG

Possíveis comandos

git tag [-a | -s | -u < 'keyid'>] [-f] [-m < 'msg'> | -F < 'file'>] < 'tagname'> [ < 'commit'> | < 'object'>] git tag -d < 'tagname'>…​ git tag [-n[ < 'num'>]] -l [--contains < 'commit'>] [--points-at < 'object'>] [--column[= < 'options'>] | --no-column] [--create-reflog] [ < 'pattern'>…​] git tag -v < 'tagname'>…​
referência na documentação do git

Introdução a Branching

Branch (Ramificação) é mais um dos recursos do git para um melhor controle sobre os commits feito no projeto.

Criando o primeiro Branch

Verificando status do projeto
$ git status
Listando todos os branch do projeto
$ git branch
Criando um novo branch
$ git checkout -b "novo_branch"

Outras operações com branch

Mudando de um branch para outro (checkout)
$ git checkout "branch"
Deletando um branch
$ git branch -d "branch"

Merge de um branch

Merge de um branch com outro
$ git checkout "branch_destino"
Deletando um branch
$ git merge "branch_origem"

Extra

Saiba mais

Referências

Git Documentation. Disponível em: https://git-scm.com/documentation. Acesso em 19 de outubro de 2015. Fonte: GIT DOCUMENTATION: https://git-scm.com/documentation Git Book. Disponível em: https://git-scm.com/book/en/v2. Acesso em 19 de outubro de 2015. Fonte: GIT BOOK: https://git-scm.com/book/en/v2

Agradecimento

Vc    CACCOMP - UFT Curso de Ciência da Computação - UFT

Realização

Fim

Controle de Versão com Git e Github (Conceitos Básicos) Criado por @viniciusaires / @herodrigues rev 1.0.1 - 02/2017