Upload
rafael-ivan
View
424
Download
0
Embed Size (px)
DESCRIPTION
Slide utilizado na minha apresentação sobre
Citation preview
DEFINIÇÃO:
DIRETÓRIO DE TRABALHO:
FERRAMENTA:
Desenvolvido em linguagem C;
Portabilidade;
Open-Source;
5 de Abril de 2005;
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;
O CRIADOR:
Linus Benedict Torvalds;
1991;
06 de Abril de 2005;
Comunidade Git;
QUEM ESTÁ USANDO O GIT? Android;
Google;
Kernel do Linux;
Ruby on Rails;
Debian;
e muitos outros.
INSTALAÇÃO -LINUX-Dependências: curl; zlib; openssl; expat; libiconv;
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
INSTALAÇÃO -MACOS-Visite:
http://code.google.com/p/git-osx-installer
MACPORT:$ sudo port install git-core +svn +doc +bash_completion +gitweb
INSTALAÇÃO -WINDOWS-Visite:
http://msysgit.github.com
Next, next, leia os termos de uso e finish. :]
NOTAS: Quase todas as operações são locais; Integridade;
Checksum; SHA-1
Um hash de SHA-1:
24b9da6552252987aa493b52f8696cd6d3b00373
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).
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.
AS TRÊS SEÇÕES:
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.
MÃO NA MASSA!Inicializando um projeto: Do zero:
$ mkdir wheezy
$ cd wheezy
$ git init
MÃO NA MASSA!Inicializando um projeto: Clonando um repositório existente:
Local:$ git clone <repo>
MÃO NA MASSA!Inicializando um projeto: Clonando um repositório existente:
Remoto:HTTP:
SSH:
MÃO NA MASSA!Diretório .git:
.git/
MÃO NA MASSA!Configurando: Informações:
/etc/gitconfig ~/.gitconfig .git/config
Identidade:
MÃO NA MASSA!Ajuda:
Informações sobre os comandos:
$ git config --help
$ git help config
DIVERSÃO!Status dos arquivos.
$ tree
$ git status
DIVERSÃO!Criando um arquivo: $ touch HelloWorld.java
$ git status
DIVERSÃO!Monitorando novos arquivos:
$ git add HelloWorld.java
$ git status
DIVERSÃO!Modificando arquivos: $ nano HelloWorld.java
Layout do programa nano.
DIVERSÃO!Modificando arquivos:
$ git status
DIVERSÃO!Selecionando arquivos modificados: $ git add HelloWorld.java
$ git status
DIVERSÃO!Editando arquivos:
Visualizando as modificações:
DIVERSÃO!Fazendo commits(arquivando):
$ git commit -m “Mensagem”
1 file changed, 6 insertions SHA-1 82814c4 Msg: ‘Hello World’ na saída principal.
DIVERSÃO!Visualizando commits(logs):
$ git log $ git help log
DIVERSÃO!Modificando um commit: $ git commit –amend
$ git commit -m “Novo commit”
DIVERSÃO!Retirando arquivos selecionados: $ git reset HEAD HelloWorld
Desfazendo modificações: $ git checkout HelloWorld
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>
DIVERSÃO!Remoto:
GitHub (github.com)
DIVERSÃO!Exibindo seus remotos: $ git remote –v
$ git remote show <remoto>
DIVERSÃO!Recebendo dados dos remotos: $ git pull <remoto>
DIVERSÃO!Visualizando os commits: $ git log
DIVERSÃO!Enviando dados para os remotos: $ git push <remoto>
DIVERSÃO!Removendo um remoto: $ git remote rm <remoto>
Renomeando um remoto:
$ git remote rename <remoto> <novoremoto>
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:
DESVANTAGENS: Maior massa de dados em operações
push/pull do que em commits/updates;
Documentação;
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)
GUI:Linux:
Git Cola (http://git-cola.github.io/)
SmartGit (http://www.syntevo.com/smartgithg/index.html)
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/)
GITHUB
REFERÊNCIAS: Site oficial do git
http://git-scm.com/ Livro Pro Git (Scott Chacon)
Linux Org http://www.linfo.org/linus.html/
Obrigado!