Comandos Básicos do
Git e Git Flow no Projeto
Requisitos:
 Ter uma conta válida no site do www.gitlab.com
 Se possível ter cadastrado as chaves SSH da máquina no seu profile do site.
 Seguir os procedimentos que estão no WIKI do projeto.
Clonando o projeto no repositóriodo https://gitlab.com/dagoba/dagoba_code
# Clonando o projeto do site
$ git clone git@gitlab.com:dagoba/dagoba_code.git
# ou se desejar baixar para outra pasta
$ git clone git@gitlab.com:dagoba/dagoba_code.git dagoba
//se não possuir a chave SSH na conta tem baixar via HTTPS
$ git clone https://gitlab.com/dagoba/dagoba_code.git
Configurar o Git:
# configurar nome e email no nível global do sistema para identificar no commit
$ git config --global user.nome "Carlos Anders"
$ git config --global user.email "carlosanders@gmail.com"
Iniciando o Git Flow no projeto:
# verficar os branches trazidos do repositório com os commits
$ git branch -a –v
# criando e alternando para o branch develop – usado como referência de desenv.
$ git checkout -b develop origin/develop
# Iniciando de fato o git flow no projeto clonado. Nessa etapa deixa com as opções default
$ git flow init
Obtendouma feature do repositórioremotopara trabalho colaborativo
Caso desejartrabalharcolaborativamentenomesmoramode umdesenvolvedorprocedadaseguinte maneira;
# no git flow: ele irá trazer do repositório remoto
$ git flow feature pull origin fluxo-trabalho
# ou se quiser usar o git.
$ git checkout -b feature/fluxo-trabalho origin/feature/fluxo-trabalho
Copiandoos arquivos de dependênciasque estãofaltando:
Para o correto funcionamentodoprojetoapósaclonagemdorepositório,é necessárioatualizaras
dependênciasnecessáriasparaoprojeto.Essasdependênciasnãosãorastreadas,poissãobibliotecasde
terceirosque oframeworkutiliza.Alémdisso xxxxxxxx
# navegar até a pasta
$ cd dagoba_code
# para baixar as dependencias necessárias do projeto
$
Criando uma feature para trabalhar em uma determinadafuncionalidade.
# no git flow
$ git-flow feature start nova-feature
# git
$ git checkout -b feature/nova-feature develop
Commitandoarquivos no repositóriolocal de seubranch de feature.
$ git commit -m 'comentário'
[master (root-commit) 1490ab0] primeiro commit
1 file changed, 1 insertion(+)
create mode 100644 README
$ git status
# On branch master
nothing to commit (working directory clean)
XXXXXXXXX
# Para commitar também os arquivos versionados mesmo não estando no Stage basta adicionar o
parâmetro -a
$ git commit -a -m 'comentário'
# corrigir uma mensagem de commit que ainda não foi enviada para um remote.
$ git commit --amend -m 'mensagem nova'
# Para juntar 2 ou mais commits em um único commit.
$ git checkout master
$ git checkout –b temp # (é uma copia do master)
# o commando abaixo, junta os commits e joga na branch temp
$ git merge desenv –squash
$ git commit –m “nova funcionalidade xpto”
$ git checkout master
$ git merge temp
$ git branch –D # para forçar a deleção
A flag-mserve para adicionarumcomentáriosobre o commitque você estáfazendo.Adicionarumcomentário
é obrigatórioparatodosos commits.Se você não usar o -m, o editorde textopadrãodo seusistema(ouaquele
configuradoinicialmente comcore.editor,veraetapade configuração) iráabrir para que você entre com uma
mensagem.
AdicionandoRepositóriosRemotosno seuRepositórioLocal:
Para informaro Git que este diretóriodevese comunicarcomo servidordo RemotoGit.
$ git remote add origin git@gitserver.anders.mb:carlosanders/siseventos.git
Ou
$ git remote add origin git@github.com:carlosanders/git-teste.git
# Para listar um repositório remoto
$ git remote -v
# Para remover um repositorio remote
$ git remote rm origin
# Para exibir nomes dos repositórios
$ git remote show
# Para exibir detalhes nome dos repositórios
$ git remote show origin
Resumo: uso típico do Git
Podemosresumiresse workflowdoGitdessaforma:
# arquivo foo.R adicionado/modificado
$ git add foo.R
$ git commit -m 'mensagem'
$ git push origin master
# arquivo bar.R adicionado/modificado
$ git add bar.R
$ git commit -m 'mensagem'
$ git push origin master
# arquivos foo.R e bar.R modificados
$ git add .
$ git commit -m 'mensagem'
$ git push origin master
Comandos Úteis do Git
Criando um chave ssh para comunicação com um repositórioRemoto:
Para criar uma chave privadano git.
$ git ssh-keygen -t rsa -C "carlosanders@gmail.com"
# Para listar a chave pública
$ cat ~/.ssh/id_rsa.pub
# ou se preferir pelo editor de texto padrão ou cacadastrado
$ notepad ~/.ssh/id_rsa.pub
Removere mover arquivos no git:
$ git rm foo.R
$ git mv foo.R
$ git rm -f {arquivo}
# Para remover arquivos do repositorio remoto, mas manter localmente
$ git rm --cached foo.R
Diferente de muitossistemasVCS,oGitnão monitoraexplicitamente arquivosmovidos.
É um pouco confusoque oGit tenhaum comandomv. Se você quiserrenomearum arquivonoGit,você pode
fazerissocom.
$ git mv arquivo_origem arquivo_destino
Para deletararquivos,mesmososque nãoestãona área de índice:
$ git clean -f
Recuperandoversõesde arquivos:
Para reverterumúnicoarquivopara uma versãoanterior (sabendoque oarquivoé foo.Re o hashSHA do
commité,por exemplo,03f9c0abe911440339ecb82e08ec8ae65ca11a7b)
$ git checkout 03f9c0a foo.R
Para reverterumunicoarquivopara uma versaoanterior(sendoque essearquivofoi DELETADOemalgum
commitanterior) se voce nãolembrao nome do arquivo,executeesse comandoque identificaosmodos
'delete'.
$ git log --diff-filter=D --summary | grep delete
Sabendo o nome do arquivo, voce pode conferir o log para identificar o commit que o deletou.
$ git log -- <arquivo-deletado>
NOTE que se o arquivoestavaemum sub-diretoriodentrodoseuprojeto,eledeveserespecificadocomo
caminhorelativoparaesse diretorio.Paratercertezadocommitque deletouoarquivo,veja
$ git rev-list -n 1 HEAD -- <arquivo-deletado>
E finalmente pararecuperaroarquivofaca o checkoutnocommitanterior(porissoo ^ ao final docommit).
$ git checkout <commit-que-deletou>^ -- <arquivo-deletado>
O arquivodeletadodeveravoltarparao diretorio(ousub-diretoriose ele estavaemum) comoum novo
arquivo.
Outros comando úteis:
# Para voltar ao último commit:
$ git reset --hard HEAD~1
# Para voltar ao último commit e mantém os últimos arquivos no Stage:
$ git reset --soft HEAD~1
# Volta para o commit com a hash XXXXXXXXXXX:
$ git reset --hard XXXXXXXXXXX
# Recuperando commit apagado pelo git reset:
$ git reflog
# E para aplicar:
$ git merge {hash}
Branchs
Um branch no Git é simplesmente umleveponteiromóvelparaumdos commits.
# Para criar uma branch:
$ git branch testing
# Para mudar para um branch existente, você executa o comando git checkout. Vamos mudar
para o novo branch testing:
$ git checkout testing
Com o gitcheckoutvocê pode mudar de branch,caso a branchainda nãoexistavocê poderápassaro parâmetro
-b para criar.
$ git checkout -b {nome_da_branch}
# Para deletar uma branch:
$ git branch -d {nome_da_branch} ou $ git branch –D {nome_da_branch}
# Para enviar a branch para o servidor remoto:
$ git push {alias} {nome_da_branch}
# Para deletar uma branch remota:
$ git push {alias} :{nome_da_branch}
$ git push origin :ubuntu16
# Para renomear uma branch local
$ git branch -m add_phpmyadmin add_mysql
Tags
Criar tags emdeterminadospontosde umprojetoé umamaneiraeficazde podervoltarfacilmente naquele
pontoe verificarasituaçãodos arquivosnaquelemomento.Nodesenvolvimentode umsoftware porexemplo,
os tags podemmarcar as versões(ex.:v0.1,v0.2,...) do códigoao longodotempo.
No git,as tags podemserleves(lightweight)ouanotadas(annotated).A diferençaé que umatag leve é só um
"ponteiro"paraum commitespecífico,enquantoque umataganotada é como se fosse umnovocommit:ela
armazenao nome de quemcrioua tag, e-mail,data,e umamensagem.
# Para criar uma tag leve faça:
$ git tag v0.1
# Para criar uma tag anotada (geralmente mais recomendado), faça :
$ git tag -a v0.1 -m 'mensagem de commit'
A mensagemde commitaqui tambémé obrigatória.Se você nãoespecificarcoma opção -m, um editoriráabrir
para você inserirumamensagem.
# Para verificar as tags existentes ou criadas:
$ git tag –l
# Para ver todos os commits especificos associados a uma tag, use:
$ git show v0.1
IMPORTANTE: se você está trabalhando com um repositório remoto (como o GitHub), é
necessário dar um push específico para que a tag também seja enviada para o servidor. As
tags criadas acima são apenas locais. Para enviar a tag para o servidor, faça um push na
tag:
$ git push origin v0.1
Merges
Suponhaque você decidiuque otrabalhona tarefa#53 está completoe pronto para serfeitoomerge no
branch master. Para fazerisso,você fará o merge doseubranch iss53, bemcomo o merge dobranch hotfix de
antes.Tudoque você tema fazeré executarocheckoutdo branchpara onde desejafazeromerge e então
rodar o comandogit merge.Quandose executaummerge é criadoum novocommitcom as alteraçõesque
estãosendomescladas.
# Para trocar de branch:
$ git checkout master
# Para fazer o merg:
$ git merge iss53
Se você querusar umaferramentagráficapara resolveressesproblemas.
$ git mergetool
# Para exibir branchs não mescladas:
$ git branch –no-merged
Rebase
Alternativamenteé possível mesclarasaltereaçõesde 2branches,simplificandoohistóricode commits.Como
rebase é informadoorepositóriofoi rebobinadoe otrabalhorefeito.
No caso abaixoo repositóriovoltou ao estado que estava ao ser criadoa branchdesenv,a partir da master.
Depoisdisso,foi aplicadoocommit que foi feitona branch desenv e finalmente foiaplicado oúltimocommit
na branch master. Dessaformaé mantidolinearizadoohistóricodoscommitsnogit.
# Para aplicar a correção da branch desenv na branch master com rebase:
$ git checkout master
$ git rebase desenv
# First, rewinding head to replay your work on top of it...
# Applying: Alterando textos do banner
Stash
Útil quandotem-se arquivoscriadose modificadosnaáreade trabalho,masainda,não desejacriarumcommit
para os mesmos,poisaindanãoterminouafuncionalidade desejada.Portanto,casonecessite criaroutra
funcionalidade oucorreçãode algumbug,semter que criar uma novabranch pode usar o stash.
1ª Forma:
# Para fazer um novo stash na sua pilha, execute:
$ git stash
# Para ver as stashes que você guardou, você pode usar:
$ git stash list
# Para aplicar/retonar o último stash para área de trabalho
$ git stash apply
# Para Limpar a área temporária/stash
$ git stash clear
2ª Forma:
# Para fazer um novo stash salvando com um nome:
$ git stash save {nome_stash}
# Para retornar um stash específico:
$ git stash apply stash{0} ou stash{1} ou stash{2}
# Para deletar um stash
$ git stash drop stash{0} ou stash{1} …
Manipulandodados de um RepositórioRemoto
Suponhaque você decidiuclonarumprojetode umrepositório remoto.
# Para clonar um projeto versionado pelo git:
$ git clone git@github.com:carlosanders/appInicialZF.git
# Para pegar dados dos seus projetos remotos, você pode executar :
$ git fetch origin
Incorporaas alteraçõesde um repositórioremotonobranchatual.Emseu modopadrão,git pull é
uma abreviaçãopara gitfetchseguidode gitmerge FETCH_HEAD. Porexemplo,se euestiveremuma
branch chamada develope quiseratualizarcasohajaatualizaçõesremotamente.
# Para Incorpora as alterações de um repositório remoto:
$ git pull origin develop
ManipulandoLogs
Suponhaque você decidiuclonarumprojetode umrepositórioremoto.
# Exibe log completo:
$ git log --stat
# Exibe log em uma linha:
$ git log --pretty=oneline
# Exibe log formantando saída:
$ git log --pretty=format:"%h - %an, %ar : %s"
# Exibe log em modo gráfico na linha de comando:
$ git log --pretty=format:"%h %s" --graph
# Exibe log de semanas atrás:
$ git log --since=2.weeks
# Exibe log em 4 linhas:
$ git log –n 4 –oneline –decorate --parents
ManipulandoDiffs
O comandogit diff nosmostraas diferençasentre oworkingdirectorye oúltimocommit.
# Exibe log completo:
$ git diff
# Para ver mudanças apenas da staging area:
$ git diff --cached
# Pra visualizar os commits em modo grafico pelo git:
$ gitk --all &
ManipulandoConfiguraçõesdo Git.
O comandogit diff nosmostraas diferençasentre oworkingdirectorye oúltimocommit..
# Setando proxy no git:
$ git config --global http.proxy http://06840680:master2016@proxy-i1.mb:6060
$ git config --global https.proxy http://06840680:master2016@proxy-i1.mb:6060
$ git config --global http.sslverify false
# Para listar configurações:
$ git config --list
# Pra listar diretiva específica do git:
$ git config --system --get https.proxy
$ git config --global --get http.proxy
$ git config --global --get https.proxy
# Para remover uma diretiva específca do git:
$ git config --global --unset http.proxy
$ git config --global --unset https.proxy
Repositório Local/Remoto
Para trabalharcom algunscomandoreferente aorepositóriolocal e remoto.
# Para clonar localmente um repositório.
$ git clone {path/repo/.git} {nome_novo_repo}
# Por convecção o repositório principal se chama origin
# Pra listar o local de onde foi executado o clone
$ git remote show origin
# Para listar branch do repositório remoto
$ git branch –a
# Para enviar uma branch específica
$ git push origin desenv
Trabalhando com SVN no GIT
Para trabalharcom algunscomandosreferente aumservidorde SVN.
# Para clonar um projeto do svn no git
$ git svn clone svn://local/do/svn/repo.svn
# Para enviar uma modificação para o svn via git
$ git svn dcommit –m “comentário”
# Para resgatar os dados do svn via git
$ git svn fecth

Git flow no projeto

  • 1.
    Comandos Básicos do Gite Git Flow no Projeto Requisitos:  Ter uma conta válida no site do www.gitlab.com  Se possível ter cadastrado as chaves SSH da máquina no seu profile do site.  Seguir os procedimentos que estão no WIKI do projeto. Clonando o projeto no repositóriodo https://gitlab.com/dagoba/dagoba_code # Clonando o projeto do site $ git clone git@gitlab.com:dagoba/dagoba_code.git # ou se desejar baixar para outra pasta $ git clone git@gitlab.com:dagoba/dagoba_code.git dagoba //se não possuir a chave SSH na conta tem baixar via HTTPS $ git clone https://gitlab.com/dagoba/dagoba_code.git Configurar o Git: # configurar nome e email no nível global do sistema para identificar no commit $ git config --global user.nome "Carlos Anders" $ git config --global user.email "carlosanders@gmail.com" Iniciando o Git Flow no projeto: # verficar os branches trazidos do repositório com os commits $ git branch -a –v # criando e alternando para o branch develop – usado como referência de desenv. $ git checkout -b develop origin/develop # Iniciando de fato o git flow no projeto clonado. Nessa etapa deixa com as opções default $ git flow init Obtendouma feature do repositórioremotopara trabalho colaborativo Caso desejartrabalharcolaborativamentenomesmoramode umdesenvolvedorprocedadaseguinte maneira; # no git flow: ele irá trazer do repositório remoto $ git flow feature pull origin fluxo-trabalho # ou se quiser usar o git. $ git checkout -b feature/fluxo-trabalho origin/feature/fluxo-trabalho Copiandoos arquivos de dependênciasque estãofaltando: Para o correto funcionamentodoprojetoapósaclonagemdorepositório,é necessárioatualizaras dependênciasnecessáriasparaoprojeto.Essasdependênciasnãosãorastreadas,poissãobibliotecasde terceirosque oframeworkutiliza.Alémdisso xxxxxxxx # navegar até a pasta $ cd dagoba_code # para baixar as dependencias necessárias do projeto $
  • 2.
    Criando uma featurepara trabalhar em uma determinadafuncionalidade. # no git flow $ git-flow feature start nova-feature # git $ git checkout -b feature/nova-feature develop Commitandoarquivos no repositóriolocal de seubranch de feature. $ git commit -m 'comentário' [master (root-commit) 1490ab0] primeiro commit 1 file changed, 1 insertion(+) create mode 100644 README $ git status # On branch master nothing to commit (working directory clean) XXXXXXXXX # Para commitar também os arquivos versionados mesmo não estando no Stage basta adicionar o parâmetro -a $ git commit -a -m 'comentário' # corrigir uma mensagem de commit que ainda não foi enviada para um remote. $ git commit --amend -m 'mensagem nova' # Para juntar 2 ou mais commits em um único commit. $ git checkout master $ git checkout –b temp # (é uma copia do master) # o commando abaixo, junta os commits e joga na branch temp $ git merge desenv –squash $ git commit –m “nova funcionalidade xpto” $ git checkout master $ git merge temp $ git branch –D # para forçar a deleção A flag-mserve para adicionarumcomentáriosobre o commitque você estáfazendo.Adicionarumcomentário é obrigatórioparatodosos commits.Se você não usar o -m, o editorde textopadrãodo seusistema(ouaquele configuradoinicialmente comcore.editor,veraetapade configuração) iráabrir para que você entre com uma mensagem. AdicionandoRepositóriosRemotosno seuRepositórioLocal: Para informaro Git que este diretóriodevese comunicarcomo servidordo RemotoGit. $ git remote add origin git@gitserver.anders.mb:carlosanders/siseventos.git Ou $ git remote add origin git@github.com:carlosanders/git-teste.git # Para listar um repositório remoto $ git remote -v # Para remover um repositorio remote $ git remote rm origin # Para exibir nomes dos repositórios $ git remote show # Para exibir detalhes nome dos repositórios $ git remote show origin Resumo: uso típico do Git
  • 3.
    Podemosresumiresse workflowdoGitdessaforma: # arquivofoo.R adicionado/modificado $ git add foo.R $ git commit -m 'mensagem' $ git push origin master # arquivo bar.R adicionado/modificado $ git add bar.R $ git commit -m 'mensagem' $ git push origin master # arquivos foo.R e bar.R modificados $ git add . $ git commit -m 'mensagem' $ git push origin master Comandos Úteis do Git Criando um chave ssh para comunicação com um repositórioRemoto: Para criar uma chave privadano git. $ git ssh-keygen -t rsa -C "carlosanders@gmail.com" # Para listar a chave pública $ cat ~/.ssh/id_rsa.pub # ou se preferir pelo editor de texto padrão ou cacadastrado $ notepad ~/.ssh/id_rsa.pub Removere mover arquivos no git: $ git rm foo.R $ git mv foo.R $ git rm -f {arquivo} # Para remover arquivos do repositorio remoto, mas manter localmente $ git rm --cached foo.R Diferente de muitossistemasVCS,oGitnão monitoraexplicitamente arquivosmovidos. É um pouco confusoque oGit tenhaum comandomv. Se você quiserrenomearum arquivonoGit,você pode fazerissocom. $ git mv arquivo_origem arquivo_destino Para deletararquivos,mesmososque nãoestãona área de índice: $ git clean -f Recuperandoversõesde arquivos: Para reverterumúnicoarquivopara uma versãoanterior (sabendoque oarquivoé foo.Re o hashSHA do commité,por exemplo,03f9c0abe911440339ecb82e08ec8ae65ca11a7b) $ git checkout 03f9c0a foo.R Para reverterumunicoarquivopara uma versaoanterior(sendoque essearquivofoi DELETADOemalgum commitanterior) se voce nãolembrao nome do arquivo,executeesse comandoque identificaosmodos 'delete'. $ git log --diff-filter=D --summary | grep delete Sabendo o nome do arquivo, voce pode conferir o log para identificar o commit que o deletou.
  • 4.
    $ git log-- <arquivo-deletado> NOTE que se o arquivoestavaemum sub-diretoriodentrodoseuprojeto,eledeveserespecificadocomo caminhorelativoparaesse diretorio.Paratercertezadocommitque deletouoarquivo,veja $ git rev-list -n 1 HEAD -- <arquivo-deletado> E finalmente pararecuperaroarquivofaca o checkoutnocommitanterior(porissoo ^ ao final docommit). $ git checkout <commit-que-deletou>^ -- <arquivo-deletado> O arquivodeletadodeveravoltarparao diretorio(ousub-diretoriose ele estavaemum) comoum novo arquivo. Outros comando úteis: # Para voltar ao último commit: $ git reset --hard HEAD~1 # Para voltar ao último commit e mantém os últimos arquivos no Stage: $ git reset --soft HEAD~1 # Volta para o commit com a hash XXXXXXXXXXX: $ git reset --hard XXXXXXXXXXX # Recuperando commit apagado pelo git reset: $ git reflog # E para aplicar: $ git merge {hash} Branchs Um branch no Git é simplesmente umleveponteiromóvelparaumdos commits. # Para criar uma branch: $ git branch testing # Para mudar para um branch existente, você executa o comando git checkout. Vamos mudar para o novo branch testing: $ git checkout testing Com o gitcheckoutvocê pode mudar de branch,caso a branchainda nãoexistavocê poderápassaro parâmetro -b para criar. $ git checkout -b {nome_da_branch} # Para deletar uma branch: $ git branch -d {nome_da_branch} ou $ git branch –D {nome_da_branch} # Para enviar a branch para o servidor remoto: $ git push {alias} {nome_da_branch} # Para deletar uma branch remota: $ git push {alias} :{nome_da_branch} $ git push origin :ubuntu16 # Para renomear uma branch local $ git branch -m add_phpmyadmin add_mysql Tags Criar tags emdeterminadospontosde umprojetoé umamaneiraeficazde podervoltarfacilmente naquele pontoe verificarasituaçãodos arquivosnaquelemomento.Nodesenvolvimentode umsoftware porexemplo, os tags podemmarcar as versões(ex.:v0.1,v0.2,...) do códigoao longodotempo. No git,as tags podemserleves(lightweight)ouanotadas(annotated).A diferençaé que umatag leve é só um "ponteiro"paraum commitespecífico,enquantoque umataganotada é como se fosse umnovocommit:ela armazenao nome de quemcrioua tag, e-mail,data,e umamensagem. # Para criar uma tag leve faça:
  • 5.
    $ git tagv0.1 # Para criar uma tag anotada (geralmente mais recomendado), faça : $ git tag -a v0.1 -m 'mensagem de commit' A mensagemde commitaqui tambémé obrigatória.Se você nãoespecificarcoma opção -m, um editoriráabrir para você inserirumamensagem. # Para verificar as tags existentes ou criadas: $ git tag –l # Para ver todos os commits especificos associados a uma tag, use: $ git show v0.1 IMPORTANTE: se você está trabalhando com um repositório remoto (como o GitHub), é necessário dar um push específico para que a tag também seja enviada para o servidor. As tags criadas acima são apenas locais. Para enviar a tag para o servidor, faça um push na tag: $ git push origin v0.1 Merges Suponhaque você decidiuque otrabalhona tarefa#53 está completoe pronto para serfeitoomerge no branch master. Para fazerisso,você fará o merge doseubranch iss53, bemcomo o merge dobranch hotfix de antes.Tudoque você tema fazeré executarocheckoutdo branchpara onde desejafazeromerge e então rodar o comandogit merge.Quandose executaummerge é criadoum novocommitcom as alteraçõesque estãosendomescladas. # Para trocar de branch: $ git checkout master # Para fazer o merg: $ git merge iss53 Se você querusar umaferramentagráficapara resolveressesproblemas. $ git mergetool # Para exibir branchs não mescladas: $ git branch –no-merged Rebase Alternativamenteé possível mesclarasaltereaçõesde 2branches,simplificandoohistóricode commits.Como rebase é informadoorepositóriofoi rebobinadoe otrabalhorefeito. No caso abaixoo repositóriovoltou ao estado que estava ao ser criadoa branchdesenv,a partir da master. Depoisdisso,foi aplicadoocommit que foi feitona branch desenv e finalmente foiaplicado oúltimocommit na branch master. Dessaformaé mantidolinearizadoohistóricodoscommitsnogit. # Para aplicar a correção da branch desenv na branch master com rebase: $ git checkout master $ git rebase desenv # First, rewinding head to replay your work on top of it... # Applying: Alterando textos do banner Stash Útil quandotem-se arquivoscriadose modificadosnaáreade trabalho,masainda,não desejacriarumcommit para os mesmos,poisaindanãoterminouafuncionalidade desejada.Portanto,casonecessite criaroutra funcionalidade oucorreçãode algumbug,semter que criar uma novabranch pode usar o stash. 1ª Forma: # Para fazer um novo stash na sua pilha, execute: $ git stash # Para ver as stashes que você guardou, você pode usar: $ git stash list
  • 6.
    # Para aplicar/retonaro último stash para área de trabalho $ git stash apply # Para Limpar a área temporária/stash $ git stash clear 2ª Forma: # Para fazer um novo stash salvando com um nome: $ git stash save {nome_stash} # Para retornar um stash específico: $ git stash apply stash{0} ou stash{1} ou stash{2} # Para deletar um stash $ git stash drop stash{0} ou stash{1} … Manipulandodados de um RepositórioRemoto Suponhaque você decidiuclonarumprojetode umrepositório remoto. # Para clonar um projeto versionado pelo git: $ git clone git@github.com:carlosanders/appInicialZF.git # Para pegar dados dos seus projetos remotos, você pode executar : $ git fetch origin Incorporaas alteraçõesde um repositórioremotonobranchatual.Emseu modopadrão,git pull é uma abreviaçãopara gitfetchseguidode gitmerge FETCH_HEAD. Porexemplo,se euestiveremuma branch chamada develope quiseratualizarcasohajaatualizaçõesremotamente. # Para Incorpora as alterações de um repositório remoto: $ git pull origin develop ManipulandoLogs Suponhaque você decidiuclonarumprojetode umrepositórioremoto. # Exibe log completo: $ git log --stat # Exibe log em uma linha: $ git log --pretty=oneline # Exibe log formantando saída: $ git log --pretty=format:"%h - %an, %ar : %s" # Exibe log em modo gráfico na linha de comando: $ git log --pretty=format:"%h %s" --graph # Exibe log de semanas atrás: $ git log --since=2.weeks # Exibe log em 4 linhas: $ git log –n 4 –oneline –decorate --parents ManipulandoDiffs O comandogit diff nosmostraas diferençasentre oworkingdirectorye oúltimocommit. # Exibe log completo: $ git diff # Para ver mudanças apenas da staging area: $ git diff --cached # Pra visualizar os commits em modo grafico pelo git: $ gitk --all & ManipulandoConfiguraçõesdo Git. O comandogit diff nosmostraas diferençasentre oworkingdirectorye oúltimocommit.. # Setando proxy no git: $ git config --global http.proxy http://06840680:master2016@proxy-i1.mb:6060 $ git config --global https.proxy http://06840680:master2016@proxy-i1.mb:6060 $ git config --global http.sslverify false # Para listar configurações: $ git config --list # Pra listar diretiva específica do git: $ git config --system --get https.proxy
  • 7.
    $ git config--global --get http.proxy $ git config --global --get https.proxy # Para remover uma diretiva específca do git: $ git config --global --unset http.proxy $ git config --global --unset https.proxy Repositório Local/Remoto Para trabalharcom algunscomandoreferente aorepositóriolocal e remoto. # Para clonar localmente um repositório. $ git clone {path/repo/.git} {nome_novo_repo} # Por convecção o repositório principal se chama origin # Pra listar o local de onde foi executado o clone $ git remote show origin # Para listar branch do repositório remoto $ git branch –a # Para enviar uma branch específica $ git push origin desenv Trabalhando com SVN no GIT Para trabalharcom algunscomandosreferente aumservidorde SVN. # Para clonar um projeto do svn no git $ git svn clone svn://local/do/svn/repo.svn # Para enviar uma modificação para o svn via git $ git svn dcommit –m “comentário” # Para resgatar os dados do svn via git $ git svn fecth