48

Conhecendo o git

Embed Size (px)

DESCRIPTION

Slide utilizado na minha apresentação sobre

Citation preview

Page 1: Conhecendo o git
Page 2: Conhecendo o git

DEFINIÇÃO:

Page 3: Conhecendo o git

DIRETÓRIO DE TRABALHO:

Page 4: Conhecendo o git

FERRAMENTA:

Desenvolvido em linguagem C;

Portabilidade;

Open-Source;

5 de Abril de 2005;

Page 5: Conhecendo o git

POR QUÊ?

BitKeeper gerenciava o código e as versões do Kernel do Linux;

Problema com a licença;

Necessidade de um controle de versão;

Criação do Git por Linus Torvalds;

Page 6: Conhecendo o git

O CRIADOR:

Linus Benedict Torvalds;

1991;

06 de Abril de 2005;

Comunidade Git;

Page 7: Conhecendo o git

QUEM ESTÁ USANDO O GIT? Android;

Google;

Kernel do Linux;

Ruby on Rails;

Debian;

e muitos outros.

Page 8: Conhecendo o git

INSTALAÇÃO -LINUX-Dependências: curl; zlib; openssl; expat; libiconv;

Page 9: Conhecendo o git

INSTALAÇÃO -LINUX-Fedora:$ yum install curl-devel expat-devel gettext-devel openssl-devel

zlib-devel

Então:

$ yum install git-core

Baseados no Debian:

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

 Então:

$ apt-get install git

Page 10: Conhecendo o git

INSTALAÇÃO -MACOS-Visite:

http://code.google.com/p/git-osx-installer

MACPORT:$ sudo port install git-core +svn +doc +bash_completion +gitweb

Page 11: Conhecendo o git

INSTALAÇÃO -WINDOWS-Visite:

http://msysgit.github.com

Next, next, leia os termos de uso e finish. :]

Page 12: Conhecendo o git

NOTAS: Quase todas as operações são locais; Integridade;

Checksum; SHA-1

Um hash de SHA-1:

24b9da6552252987aa493b52f8696cd6d3b00373

Page 13: Conhecendo o git

OS TRÊS ESTADOS: Consolidado(commited):

Dados são ditos consolidados quando estão seguramente armazenados em sua base de dados local.

Modificado(modified): Modificado trata de um arquivo que sofreu mudanças

mas que ainda não foi consolidado na base de dados.

Preparado(staged): Um arquivo é tido como preparado quando você marca

um arquivo modificado em sua versão corrente para que ele faça parte do snapshot do próximo commit. (consolidação).

Page 14: Conhecendo o git

AS TRÊS SEÇÕES: Diretório git(git directory):

É o local onde o Git armazena os metadados e o banco de objetos de seu projeto. Esta é a parte mais importante do Git, e é a parte copiada quando você clona um repositório de outro computador.

Diretório de trabalho(working directory):  É um único checkout de uma versão do projeto.

 Área de preparação (staging area): É área de preparação, é um simples arquivo, geralmente

contido no seu diretório git, que armazena informações sobre o que irá em seu próximo commit.

Page 15: Conhecendo o git

AS TRÊS SEÇÕES:

Page 16: Conhecendo o git

WORKFLOW:Workflow básico do git:

Você modifica os arquivos no seu diretório de trabalho.

Você seleciona os arquivos, adicionando snapshots deles para sua área de preparação.

Você faz um commit, que leva os arquivos como eles estão na sua área de preparação e os armazena permanentemente no seu diretório git.

Page 17: Conhecendo o git

MÃO NA MASSA!Inicializando um projeto: Do zero:

$ mkdir wheezy

$ cd wheezy

$ git init

Page 18: Conhecendo o git

MÃO NA MASSA!Inicializando um projeto: Clonando um repositório existente:

Local:$ git clone <repo>

Page 19: Conhecendo o git

MÃO NA MASSA!Inicializando um projeto: Clonando um repositório existente:

Remoto:HTTP:

SSH:

Page 20: Conhecendo o git

MÃO NA MASSA!Diretório .git:

.git/

Page 21: Conhecendo o git

MÃO NA MASSA!Configurando: Informações:

/etc/gitconfig ~/.gitconfig .git/config 

Identidade:

Page 22: Conhecendo o git

MÃO NA MASSA!Ajuda:

Informações sobre os comandos:

$ git config --help

$ git help config

Page 23: Conhecendo o git

DIVERSÃO!Status dos arquivos.

$ tree

$ git status

Page 24: Conhecendo o git

DIVERSÃO!Criando um arquivo: $ touch HelloWorld.java

$ git status

Page 25: Conhecendo o git

DIVERSÃO!Monitorando novos arquivos:

$ git add HelloWorld.java

$ git status

Page 26: Conhecendo o git

DIVERSÃO!Modificando arquivos: $ nano HelloWorld.java

Layout do programa nano.

Page 27: Conhecendo o git

DIVERSÃO!Modificando arquivos:

$ git status

Page 28: Conhecendo o git

DIVERSÃO!Selecionando arquivos modificados: $ git add HelloWorld.java

$ git status

Page 29: Conhecendo o git

DIVERSÃO!Editando arquivos:

Visualizando as modificações:

Page 30: Conhecendo o git

DIVERSÃO!Fazendo commits(arquivando):

$ git commit -m “Mensagem”

1 file changed, 6 insertions SHA-1 82814c4 Msg: ‘Hello World’ na saída principal.

Page 31: Conhecendo o git

DIVERSÃO!Visualizando commits(logs):

$ git log $ git help log

Page 32: Conhecendo o git

DIVERSÃO!Modificando um commit: $ git commit –amend

$ git commit -m “Novo commit”

Page 33: Conhecendo o git

DIVERSÃO!Retirando arquivos selecionados: $ git reset HEAD HelloWorld

Desfazendo modificações: $ git checkout HelloWorld

Page 34: Conhecendo o git

DIVERSÃO!Trabalhando com remotos:

Adicionando um repositório remoto para um projeto existente.

git remote add <url>

Clonando um repositório:

git clone <url>

Page 35: Conhecendo o git

DIVERSÃO!Remoto:

GitHub (github.com)

Page 36: Conhecendo o git

DIVERSÃO!Exibindo seus remotos: $ git remote –v

$ git remote show <remoto>

Page 37: Conhecendo o git

DIVERSÃO!Recebendo dados dos remotos: $ git pull <remoto>

Page 38: Conhecendo o git

DIVERSÃO!Visualizando os commits: $ git log

Page 39: Conhecendo o git

DIVERSÃO!Enviando dados para os remotos: $ git push <remoto>

Page 40: Conhecendo o git

DIVERSÃO!Removendo um remoto: $ git remote rm <remoto>

Renomeando um remoto:

$ git remote rename <remoto> <novoremoto>

Page 41: Conhecendo o git

VANTAGENS: Consistência:

Nenhum repositório deve possuir mais dados que qualquer outro;

Velocidade: Muito mais rápido que outros sistemas de controle de

versão; Espaço:

Reduz o tamanho local, assim como as transferências em operações de push/pull;

Open-Source:

Page 42: Conhecendo o git

DESVANTAGENS: Maior massa de dados em operações

push/pull do que em commits/updates;

Documentação;

Page 43: Conhecendo o git

GUI:Windows:

Github (http://windows.github.com)

Git Extension (http://code.google.com/p/gitextensions/)

Git Cola (http://git-cola.github.io/)

SmartGit (http://www.syntevo.com/smartgithg/index.html)

Page 44: Conhecendo o git

GUI:Linux:

Git Cola (http://git-cola.github.io/)

SmartGit (http://www.syntevo.com/smartgithg/index.html)

Page 45: Conhecendo o git

GUI:MacOS:

Github (http://mac.github.com)

Tower (http://www.git-tower.com/)

Git box (http://www.gitboxapp.com/)

SourceTree (http://www.sourcetreeapp.com/)

GitX (http://gitx.laullon.com/)

Page 46: Conhecendo o git

GITHUB

Page 47: Conhecendo o git

REFERÊNCIAS: Site oficial do git

http://git-scm.com/ Livro Pro Git (Scott Chacon)

Linux Org http://www.linfo.org/linus.html/

Page 48: Conhecendo o git

Obrigado!