Oficina
Git/GitHub
Por Sérgio Silva
O que vamos fazer?
•   Website GitHub
•   Criando Conta
•   Corporação, Time, Diretórios Privates
3
•   Criando repositório de trabalho
•   Conceito de Master e Branch (Fluxo de Trabalho)
•   Populando repositório
•   Iniciando diretório na sua maquina
•   Clonando um repositório
•   O que é Fork
•   Recebendo modificações do servidor (pull)
•   Adicionar e Remover
4
•   Salvando modificações localmente (commit)
•   Enviando modificações para o servidor (push)
•   Sinalizando versão estável (tag)
•   Desfazendo modificações (reset)
•   Verificar status de repositório
5
Não vamos fazer, mas podemos:
1.  Voltar o diretório para um commit específico
2.  Espurgar commits de um único membro do time
3.  Controlar permissões por time
6
Website
Criando Conta
Corporação,
Time, Diretórios
Privados
Repositório
Clonando diretório para a máquina
•   Primeiro crie o diretório no Github
•   Agora é necessário inicializar o diretório em sua máquina
•   Verifique se o git esta instalado (Unix)
$ apt-get install git
$ yum install git-core
01.
02.
12
Fluxo de
Trabalho
Git Code Tree
Como funciona o git?
https://developer.github.com/v3/git/trees/
Fluxo de Trabalho
•   O que é a Master
•   O que é uma Branch
•   Para que serve uma Branch
•   Cuidados que devemos ter (controle avançado)
1.  Ao trocar de Branch
2.  Ao fazer merge
3.  Ao reverter uma modificação (commit)
15
Antes de
qualquer coisa
Informe seu usuário e senha no
terminal
•   Se não você não conseguirá enviar nenhuma alteração
•   É arriscado enviar alterações como usuário anônimo e depois terá
problemas
•   Veja a sintaxe de cada comando:
$ git config --global user.name "John Doe"
•   Você informou seu nome!
17
...
•   Agora informe seu email:
$ git config --global user.email johndoe@example.com
•   Você informou seu email!
•   A senha sempre será pedida quando você enviar uma informação ao
servidor!
18
Inicializando
Repositório
Em sua máquina...
•   É necessário inicializar o diretório que receberá a aplicação
•   Mas você também pode ao invés de inicializar, CLONAR o diretório
•   Veja a sintaxe de cada comando:
$ git init
•   Este comando deve ser executado no diretório que você deseja
versionar!
20
Clonando...
•   Ou efetuando a clonagem de um diretório já criado em seu repositório
•   Veja a sintaxe de cada comando:
$ git clone /caminho/para/o/repositório
•   ou
$ git clone usuário@servidor:/caminho/para/o/repositório
21
Onde eu pego o endereço para
clonagem?
•   Depois de criado e inicializado la no GitHub
•   Você pode copiar o endereço do diretório
•   Como indicado na figura a seguir
22
Agora é só alegria!
•   Depois de copiado o link, agora é só incluir o comando git clone
•   O comando ficará:
$ git clone https://github.com/J2MTecnologia/flisol_2014-oficin
•   Agora é só aguardar o processo de clonagem!
24
Importante:
•   Em diretórios privados (private) talvez você precise informar seu
usuário e senha
25
Populando
Repositório
Durante seu fluxo de trabalho
•   Alterei um ou mais arquivos
•   Verifico quais eu alterei
$ git status
•   Adiciono a alteração
$ git add &<arquivo>
$ git add *
$ git add --all
01.
02.
03.
27
...
•   Comito minhas modificações
$ git commit -m "comentários das alterações"
•   Alteração enviada (localmente)
28
Enviando
modificações
...
•   Comando de envio remoto
$ git push origin master
•   Alterações enviadas (remotamente)
30
...
•   Caso não tenha clonado o diretório ainda
$ git remote add origin &<servidor>
•   Efetuando cópia remota
31
Ramificação
...
•   Criando uma nova branch chamada "funcionalidade_y"
$ git checkout -b funcionalidade_x
$ git checkout master
•   neste mesmo comando já seleciona para utilização
01.
02.
34
...
•   Removendo a branch
$ git branch -d funcionalidade_x
•   um branch não está disponível a outros a menos que você envie o
branch para seu repositório remoto
$ git push origin &<funcionalidade_x>
35
Atualizar
...
•   Sempre antes de começar seu trabalho
$ git pull
37
Comparação
Comparando uma branch com a
outra
•   Sempre antes de começar seu trabalho
$ git diff &<branch origem> &<branch destino>
39
Rotular
Versão estável de uma release
•   Serve para dizer que naquele ponto do meu projeto, lancei uma versão
estável
$ git tag 1.0.0 1b2e1d63ff
41
Obtendo log do Git
•   Para obter o id do commit, basta efetuar o seguinte comando:
$ git log
•   Também serve para informar tudo que foi feito naquela sessão ativa
42
Sobrescrevendo
Alterações
Otendo log do Git
•   No caso de você ter feito algo errado (que seguramente nunca
acontece ;) você pode sobrescrever as alterações locais usando o
commando
$ git checkout -- &<arquivo>
$ git reset --all
•   Também serve para informar tudo que foi feito naquela sessão ativa
01.
02.
44
Mãos à Obra
Parte 1
1.  Crie uma organização com o nome de EEDACT2015 em sua conta
2.  Crie um repositório dentro da sua organização com o nome de aula de
Git
•   Não esqueça de criar com o README.md
1.  Clone este repositório para sua máquina
2.  Popule seu repositório clonado com o arquivo index.html
3.  Escreva 2 paragrafos no arquivo HTML e salve o arquivo.
46
...Continuação
1.  Adicione o arquivo que foi editado para que ele possa ser incorporado
ao seu repositório remoto, utilizando o comando git add
2.  Comite o arquivo e diga o que você editou nele
•   Utilize o parâmetro -m para colocar um comentário
1.  Envie o arquivo para para o seu diretório remoto
47
Parte 2
1.  Crie uma nova branch cujo o nome será "design"
2.  Nesta branch, crie a pasta css e crie um arquivo de estilo e escreva a
linha recomendada pelo instrututor
3.  Envie as modificações feitas com os comandos add, commit e push
4.  Verifique se os arquivos foram devidamente enviados ao seu
repositório
48
Bibliografias
1.  GIT - GUIA PRÁTICO
http://rogerdudler.github.io/git-guide/index.pt_BR.html
2.  Git
http://git-scm.com/
3.  Node GH - All the power of GitHub in your terminal
http://nodegh.io/
4.  Try Git - Simule Comandos do Terminal Git
https://try.github.io
49
Créditos
1.  Sérgio Bezerra da Silva
Perfil do Facebook | Perfil Github | Studio Sttark - Gráfico & Digital |
sergio.silva.unb@gmail.com
50
Oficina de Git EEDACT2015

Oficina de Git EEDACT2015

  • 1.
  • 3.
    O que vamosfazer? •   Website GitHub •   Criando Conta •   Corporação, Time, Diretórios Privates 3
  • 4.
    •   Criando repositóriode trabalho •   Conceito de Master e Branch (Fluxo de Trabalho) •   Populando repositório •   Iniciando diretório na sua maquina •   Clonando um repositório •   O que é Fork •   Recebendo modificações do servidor (pull) •   Adicionar e Remover 4
  • 5.
    •   Salvando modificaçõeslocalmente (commit) •   Enviando modificações para o servidor (push) •   Sinalizando versão estável (tag) •   Desfazendo modificações (reset) •   Verificar status de repositório 5
  • 6.
    Não vamos fazer,mas podemos: 1.  Voltar o diretório para um commit específico 2.  Espurgar commits de um único membro do time 3.  Controlar permissões por time 6
  • 7.
  • 9.
  • 10.
  • 11.
  • 12.
    Clonando diretório paraa máquina •   Primeiro crie o diretório no Github •   Agora é necessário inicializar o diretório em sua máquina •   Verifique se o git esta instalado (Unix) $ apt-get install git $ yum install git-core 01. 02. 12
  • 13.
  • 14.
    Git Code Tree Comofunciona o git? https://developer.github.com/v3/git/trees/
  • 15.
    Fluxo de Trabalho •  O que é a Master •   O que é uma Branch •   Para que serve uma Branch •   Cuidados que devemos ter (controle avançado) 1.  Ao trocar de Branch 2.  Ao fazer merge 3.  Ao reverter uma modificação (commit) 15
  • 16.
  • 17.
    Informe seu usuárioe senha no terminal •   Se não você não conseguirá enviar nenhuma alteração •   É arriscado enviar alterações como usuário anônimo e depois terá problemas •   Veja a sintaxe de cada comando: $ git config --global user.name "John Doe" •   Você informou seu nome! 17
  • 18.
    ... •   Agora informeseu email: $ git config --global user.email johndoe@example.com •   Você informou seu email! •   A senha sempre será pedida quando você enviar uma informação ao servidor! 18
  • 19.
  • 20.
    Em sua máquina... •  É necessário inicializar o diretório que receberá a aplicação •   Mas você também pode ao invés de inicializar, CLONAR o diretório •   Veja a sintaxe de cada comando: $ git init •   Este comando deve ser executado no diretório que você deseja versionar! 20
  • 21.
    Clonando... •   Ou efetuandoa clonagem de um diretório já criado em seu repositório •   Veja a sintaxe de cada comando: $ git clone /caminho/para/o/repositório •   ou $ git clone usuário@servidor:/caminho/para/o/repositório 21
  • 22.
    Onde eu pegoo endereço para clonagem? •   Depois de criado e inicializado la no GitHub •   Você pode copiar o endereço do diretório •   Como indicado na figura a seguir 22
  • 24.
    Agora é sóalegria! •   Depois de copiado o link, agora é só incluir o comando git clone •   O comando ficará: $ git clone https://github.com/J2MTecnologia/flisol_2014-oficin •   Agora é só aguardar o processo de clonagem! 24
  • 25.
    Importante: •   Em diretóriosprivados (private) talvez você precise informar seu usuário e senha 25
  • 26.
  • 27.
    Durante seu fluxode trabalho •   Alterei um ou mais arquivos •   Verifico quais eu alterei $ git status •   Adiciono a alteração $ git add &<arquivo> $ git add * $ git add --all 01. 02. 03. 27
  • 28.
    ... •   Comito minhasmodificações $ git commit -m "comentários das alterações" •   Alteração enviada (localmente) 28
  • 29.
  • 30.
    ... •   Comando deenvio remoto $ git push origin master •   Alterações enviadas (remotamente) 30
  • 31.
    ... •   Caso nãotenha clonado o diretório ainda $ git remote add origin &<servidor> •   Efetuando cópia remota 31
  • 32.
  • 34.
    ... •   Criando umanova branch chamada "funcionalidade_y" $ git checkout -b funcionalidade_x $ git checkout master •   neste mesmo comando já seleciona para utilização 01. 02. 34
  • 35.
    ... •   Removendo abranch $ git branch -d funcionalidade_x •   um branch não está disponível a outros a menos que você envie o branch para seu repositório remoto $ git push origin &<funcionalidade_x> 35
  • 36.
  • 37.
    ... •   Sempre antesde começar seu trabalho $ git pull 37
  • 38.
  • 39.
    Comparando uma branchcom a outra •   Sempre antes de começar seu trabalho $ git diff &<branch origem> &<branch destino> 39
  • 40.
  • 41.
    Versão estável deuma release •   Serve para dizer que naquele ponto do meu projeto, lancei uma versão estável $ git tag 1.0.0 1b2e1d63ff 41
  • 42.
    Obtendo log doGit •   Para obter o id do commit, basta efetuar o seguinte comando: $ git log •   Também serve para informar tudo que foi feito naquela sessão ativa 42
  • 43.
  • 44.
    Otendo log doGit •   No caso de você ter feito algo errado (que seguramente nunca acontece ;) você pode sobrescrever as alterações locais usando o commando $ git checkout -- &<arquivo> $ git reset --all •   Também serve para informar tudo que foi feito naquela sessão ativa 01. 02. 44
  • 45.
  • 46.
    Parte 1 1.  Crieuma organização com o nome de EEDACT2015 em sua conta 2.  Crie um repositório dentro da sua organização com o nome de aula de Git •   Não esqueça de criar com o README.md 1.  Clone este repositório para sua máquina 2.  Popule seu repositório clonado com o arquivo index.html 3.  Escreva 2 paragrafos no arquivo HTML e salve o arquivo. 46
  • 47.
    ...Continuação 1.  Adicione oarquivo que foi editado para que ele possa ser incorporado ao seu repositório remoto, utilizando o comando git add 2.  Comite o arquivo e diga o que você editou nele •   Utilize o parâmetro -m para colocar um comentário 1.  Envie o arquivo para para o seu diretório remoto 47
  • 48.
    Parte 2 1.  Crieuma nova branch cujo o nome será "design" 2.  Nesta branch, crie a pasta css e crie um arquivo de estilo e escreva a linha recomendada pelo instrututor 3.  Envie as modificações feitas com os comandos add, commit e push 4.  Verifique se os arquivos foram devidamente enviados ao seu repositório 48
  • 49.
    Bibliografias 1.  GIT -GUIA PRÁTICO http://rogerdudler.github.io/git-guide/index.pt_BR.html 2.  Git http://git-scm.com/ 3.  Node GH - All the power of GitHub in your terminal http://nodegh.io/ 4.  Try Git - Simule Comandos do Terminal Git https://try.github.io 49
  • 50.
    Créditos 1.  Sérgio Bezerrada Silva Perfil do Facebook | Perfil Github | Studio Sttark - Gráfico & Digital | sergio.silva.unb@gmail.com 50