Ferramentas do usuário

Ferramentas do site


ti_publica:dicas_git

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Próxima revisão
Revisão anterior
ti_publica:dicas_git [2019/06/19 10:50]
cartola criada
ti_publica:dicas_git [2019/07/02 09:44] (atual)
cartola [Branches]
Linha 23: Linha 23:
 ===== Verificando o ambiente ===== ===== Verificando o ambiente =====
  
-  * Estando em qualquer diretório do repositório: +  * Para ver o status de um arquivo ou diretório estando em qualquer diretório do repositório:
-    <code>git status</code> +
- +
-  * Para ver o status de um arquivo ou diretório:+
     <code>git status [<nome>]</code>     <code>git status [<nome>]</code>
  
Linha 33: Linha 30:
  
 ===== Trabalhando numa mudança cotidiana ===== ===== Trabalhando numa mudança cotidiana =====
 +
 +O fluxo mais comum de trabalho no dia-a-dia em um repositório já baixado vai ser:
 +
 +  * Atualizar o código (desnecessário se só você altera e sempre o faz desse local): ''git pull''
 +  * Alterar o que for necessário
 +  * Indicar o que quer que seja atualizado (dentre o que foi alterado): ''git add <nome(s)>''
 +  * Atualizar o repositório local: ''git commit [-m "mensagem"] <nome(s)>|-a''
 +  * Atualizar o repositório remoto: ''git push''
 +
 +Além desse fluxo pode precisar também desses comandos:
  
   * Adiciona um item para ser controlado ou atualizado:   * Adiciona um item para ser controlado ou atualizado:
Linha 40: Linha 47:
     <code>git mv <nome></code>     <code>git mv <nome></code>
  
-  * Remove um item:+  * Remove um item (não se deve remover com o rm do SO):
     <code>git rm <nome></code>     <code>git rm <nome></code>
  
 +
 +===== Branches =====
 +
 +Podem ser usados para experimentar, para guardar diferentes versões, para trabalho em equipe, para implementar nova funcionalidade e depois integrar com o curso principal, etc. Podem ser vistos como:
 +  * pontuais:
 +    * implementar nova funcionalidade;
 +    * correção;
 +    * mudança de configuração...
 +  * de vida longa: 
 +    * master;
 +    * release;
 +    * develop...
 +
 +Usos do comando //branch//:
 +
 +**Nota:** o comando //checkout// apenas reaponta a referência HEAD e atualiza a árvore de trabalho de acordo com tal apontamento.
 +
 +  * Consultando os //branches// existentes (a opção ''-a'' mostrará também os branches remotos):
 +    <code>git branch [-a]</code>
 +
 +  * Criando um //branch// (mas não te posicionando nele):
 +    <code>git branch <nome do branch></code>
 +
 +  * Apontando para o //branch// criado:
 +    <code>git checkout <nome do branch></code>
 +
 +  * Cria e já aponta para o //branch// criado:
 +    <code>git checkout -b <nome do branch></code>
 +
 +  * Removendo um //branch//:
 +    <code>git branch -d <nome do branch></code>
 +
 +  * Caso um //commit// tenha ficado órfão por deleção acidental do label do //branch//:
 +    * Listar história recente do HEAD: ''git reflog''
 +    * Verificar se há um sha1 referente ao que se perdeu
 +    * Recriar o //branch// apontando para aquele //commit// órfão: ''git checkout -b <nome> <sha1>''
 +
 +  * Mostra grafo histórico dos //branches// criados:
 +    <code>git log --oneline --graph</code>
 +
 +  * Para ''push'' para o //branch// específico:
 +    <code>push -u origin <branch></code>
 +===== Merging =====
 +
 +Obtendo um manual sobre o assunto:
 +    $ git help merge
 +
 +Tipos:
 +  * fast-forward
 +    * é o padrão
 +    * apenas move o label do ramo base para a ponta do ramo 
 +  * commit
 +    * próxima tentativa caso o fast-forward não seja possível
 +    * sempre terá múltiplos pais e pode gerar conflitos
 +  * squash
 +  * rebase
 +
 +Realizando um merge tipo fast-forward:
 +  * Reapontar o HEAD para master
 +  * Realizar o merge propriamente dito
 +  * Eliminar o ramo usado para a implementação (opcional)
 +
 +  # Uma conferida no status das coisas
 +  $ git log --online --graph --all
 +  $ git chechout master
 +  $ git merge featureX
 +  $ git branch -d featureX # opcional
 +
 +Realizando um merge tipo commit
 +  * Mesmos passos do fast-forward
 +  * git vai detectar que o fast-forward não é possível
 +  * git abrirá um editor para a mensagem de merge (pode aceitar a padrão ou editar)
 +  * Manterá claramente o caminho do ramo no histórico
 +  * Se quiser sempre fazer o tipo merge pode se usar a opção ''--no-ff''
 ===== Rascunho ===== ===== Rascunho =====
  
ti_publica/dicas_git.1560952203.txt.gz · Última modificação: 2019/06/19 10:50 por cartola