Arquivo da tag: SVN

[HowTo] – [Git]

git init
Iniciar o versionamento dentro de uma pasta;
Criará um diretório .git;
Para fazer backup com todo histórico, apenas copiar o diretório .git.

git init --bare
Cria o repositório com as mesmas pastas que o git criaria dentro da pasta .git;
A pasta .git não existe nesse cenário;
Cria um repositório sem área de trabalho.

git status
Mostra o Status que está o Working Area e o Índice.

git add <>
Adicionar ao índice;
Dentro do <>, adicionará arquivos, arquivos de um tipo, ou tudo;
. ou * é igual a tudo;
Para arquivos de um tipo. Exp: *.java;
Caso tenha modificado o arquivo depois de ter adicionado ao índice, terá que refazer esse passo.

git add -i
Mostra um menu de opções para trabalhar em cima do Working Area X Índice.

git rm --cached <file>
Retira o arquivo do índice.

git commit -m "Mensagem para o commit que está fazendo. O Mesmo que histórico."
Envia ao repositório;
Grava o conteúdo do índice no repositório.

git commit -a -m "mensagem"
-a funciona para comitar arquivos que já foram modificados e já foram comitados ao menos uma vez.

git checkout --<file>
Caso queira retirar do índice.

git log
Lista os logs.

git log --stat
Mostra o que cada commit foi alterado.

git log --graph
Mostra os logs gráficamente.

gitk --all &
Git gráfico para visualização de logs.

git reset HEAD <>
Retira o arquivo modificado do índice, voltando para o Working Area.

git reset HEAD~1 --hard >
Esse comando retorna para o -1 commit;
--hard > Arranca fora o commit inteiro;
--soft > Ele volta para o Índice.

git commit -m "Teste" --amend
Para adicionar um arquivo no último commit;
Dica: Usar só locamente;
Joga fora o último commit e cria um novo.

.gitignore
Colocar as informações que não deseja versionar;
Ex: *.log >> Nunca versionará os arquivos com extensão .log.

git add target/teste.txt -f
Caso queira versionar mesmo estando configurando no .gitignore.

git reflog
Guarda o que foi-se apagando.

git merge <SHA1>
git merge <branch> > fazer merge com outro branch;
git merge <branch> --squash > Ele pega todos os commits de um branch e coloca no Índice no branch que está.

git clean -f
Pegar arquivos que estão no Working Area e jogam as modificações fora.

git stash
Pega os arquivos do índice e manda para o stash, retornando ao estado inicial do índice.
Usado para quando tem um ambiente estável e quer fazer novas modificações, por exemplo, testes.

git stash list
Mostra as listas que estão no Stash.

git stash apply
Ele pega o que está no stash e joga no índice novamente.

git stash apply stash@{0}
Retorna o último stash ou qualquer um que informou;
O mais recente sempre é o 0.

git stash clear
Apaga todas as listas do stash.

git stash save "<nome>"
Salva o stash com um nome.

git stash pop
Retira do stash, aplica no índice e apaga a lista do stash.

git stash drop <stash>
Retira da lista dos stashes.

  • Convenção

Convencione a não trabalhar-se em cima do Master
Pode-se criar branches. Quantas quiser. Foi feito para ter inúmeras.
Sempre usar.

git branch
Lista as branches.

git branch -a
Mostra todas as branches incluindo os remotos

git branch -d bugfix
Apaga o branch bugfix.

git checkout -b desenvolvimento
Cria um novo branch;
Para ficar indo de um branch para outro, é necessário commitar;
Pega o estado que encontra-se o branch e cria um novo da mesma forma.

git checkout <branch>
Mudando de branch.

git rebase <master>
Trazer o versionanmento do branch informado para o branch que encontra-se;
Tem a função de desfazer o último commit, faz o merge com o branch que informou e commita o commit que tinha desfeito;
A principal função é manter o histórico linear.

git rebase --continue
Para quando não encontra-se em nenhum branch, já retirou o conflito e está querendo commitar.

  • Repositórios Remotos

git clone <.gitRemoto> <repositorio>
Cria um clone do repositório informado para um novo diretório;
Cópia do repositório localmente;
Ex com Http: git clone https://github.com/marcoscarvalho/<path>.git <diretorio>

git remote
Lista os Repositórios remotos;

git remote show origin
Mostra o local da onde foi feito o clone;
"origin" é uma convenção para o primeiro remote/clone.

git remote add <nome> <url>
Adicionar novos repositórios remotos.

git remote rm <nomeRemote>
Desfaz a interligação com os outros repositórios.

git branch -b <novoBranch> origin/<velhoBranchDoQueVoceClonou>
Cria-se o branch a partir do branch clonado.

git push <remote> <branchRemoto>
Empurra para um branch remoto.

git pull <remote> <branchRemoto>
Puxa o repositório a partir do branch informado.

git fetch <remote> <branchRemoto>
Puxa novos commits do repo remoto para a branch especial <remote>/<branch>

git remote add <nome> <user>@<server>:<pasta>/<repositorio>
Adiciona um repositório externo

Enjoy
Marcos Carvalho

[HowTo] – [Git] Trabalhando com Repositório Central

  • Forma 1 - linear e parecida com a do SVN

git fetch ou git pull
Exp: git fetch origin/master;

git rebase ou git merge
Exp: git merge origin/master ou git rebase origin/master
git push

  • Forma 2 - Não desenvolver no master.
  • Criar novos branches.
  • git checkout no repositorio clonado.
  • Ex: git checkout -b bugfix

  • Depois que tiver terminado a correção do bug, sincronizar o master
  • No branch bugfix, dar rebase.
  • Ex: git rebase

  • no branch master, fazer merge para trazer as correções.
  • Ex: git merge bugfix

    git push origin master

  • Desfazer do branch.
  • Ex: git branch -d bugfix

    Enjoy
    Marcos Carvalho

    [HowTo] – [Git] Subversion

    • Não tem branches. Ter cuidado.
    • Manter sempre o master em sincronia com o svn.

    git svn clone svn://<url>/<repositorio> <diretorio>
    clona o repositório svn.

    git commit

    git svn dcommit
    manda o commit de volta ao repositório.

  • Para fazer update
  • git svn fetch

  • Para fazer merge
  • git svn merge <branch>
    Ex: git svn merge git-svn

  • Adicionando no GitHub
  • git remote add <repositorio>[email protected]:<user>/<pasta>

    Enjoy
    Marcos Carvalho