Arquivo da tag: Colaboração

[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] Colaboração

  • Depois que tiver recebido uma invocação que alguém fez alguma melhoria, é necessário validar e aprovar.
  • Você verá novos repositórios clonados a partir do seu.
  • Baixar as melhorias, validar e disponibilizar novamente.

git remote add <remote> <url>
<remote> é interessante você salvar o nome do usuário.
<url> read-only.

  • É recomendável criar um novo branch para validação e aprovação.

git fetch <remote>
Baixando as informações.

git branch -a
Mostrar todas as branches nos seus devidos lugares.

git diff <forkRemoteRepositorio>/<branch>
Para visualizar as diferenças do fork com o original, a partir da branch que se encontra.

git merge <forkRemoteRepositorio>/<branch>
Aceitando as alterações.
Entre nos arquivos que deram conflitos para tirar as cláusulas que estão conflitantes. Salve.

git commit
Commit do merge a partir do fork.

git push <remote> <branch>
Empurre para o repositório original.

Enjoy
Marcos Carvalho

[HowTo] – [Git] Colaboração com Tickets

git format-patch master --stdout > <arquivo>.diff
Novo arquivo com as diferenças.

  • Mandar esse arquivo para o dono;
  • O Dono criará um novo branch e a partir desse, validará se as modificações aperfeiçoam o projeto e aceitar o commit disponibilizando para a comunidade.

git am <arquivo>.diff
É aplicado o diff com o commit.
Como se tivesse recebido o commit.

git checkout <branch>
Voltar para um branch. Ex: master;

git merge <branchCriadoAcima>

git push origin <branch>
<branch> normalmente é o master

Enjoy
Marcos Carvalho