Projeto

Geral

Perfil

Gitcomandos » Histórico » Versão 13

Versão 12 (Mauricio Luiz Viani, 31/01/2024 17:50 h) → Versão 13/14 (Mauricio Luiz Viani, 31/01/2024 17:54 h)

h1. Comandos básicos do Git

h2. Branches

h3. Listar branches

<pre>
$ git branch
$ git branch -a

O ramo que tiver um '*' é o ramo ativo
</pre>

h3. Selecionar branch

<pre>
$ git checkout <nome_do_branch>

Ativa o branch como padrão
</pre>

h3. Criar branch

<pre>
$ git branch <nome_do_branch>

Posicionar no branch a partir do qual será gerado o novo branch. Ex: master
</pre>

h3. Excluir branch

<pre>
$ git branch -d <nome_do_branch>

Use -D para forçar exclusão do branch mesmo que existam diferenças
</pre>

h3. Mesclar branches

<pre>
$ git merge <nome_branch_mesclar>

Posicionar no branch que receberá o merge
Em caso de conflito fazer git mergetool
</pre>

h3. Criar um branch a partir de uma tag

<pre>
$ git checkout -b <nome-do-branch> tags/<nome-da-tag>
</pre>

h3. Posicionar um branch em uma revisão

<pre>
$ git reset --hard <hash-da-revisao>
$ git reset --hard HEAD
</pre>

h3. Commitar uma revisão qualquer sobre um branch

<pre>
$ git cherry-pick --edit <hash-da-revisao>

Posicionar primeiramente no branch que receberá o commit
</pre>

h3. Remover um branch do repositório principal

<pre>
$ git push origin --delete <remoteBranchName>
</pre>

------

h2. Operações sobre o repositório

h3. Exibir situação do repositório

<pre>
$ git status

Lista a situação do repositório, mostrando o ramo ativo, posição do ponteiro do ramo em
relação ao remoto, arquivos modificados e arquivos pendentes de commit
</pre>

h3. Adicionar um servidor remoto

<pre>
$ git remote add <nome-repositorio> <caminho>

Exemplo:

$ git remote add repo-externo https://github.com/ComunidadeExpresso/expressomobile.git
</pre>

h3. Atualizar repositório local com a versão mais recente do repositório remoto

<pre>
$ git pull

Posicionar no branch que receberá as atualizações
</pre>

h3. Enviar dados do branch para o servidor remoto

<pre>
$ git push

Posicionar no branch que será origem do envio

ou:

$ git push <nome-repositorio> <nome_branch>

Exemplo: git push origin master
</pre>

h3. Ver o log

<pre>
$ git log
$ git log -4
</pre>

h3. Exibir informações do repositório remoto

<pre>
$ git remote show <nome-repositorio>

Exemplo: git remote show origin
</pre>

h3. Atualizar repositório local com últimas atualizações dos remotos

<pre>
$ git fetch --all
</pre>

h3. Salvar as atualizações locais antes de atualizar o repositório

<pre>
$ git pull --rebase

Irá salvar as alterações locais, atualizar o repositório local a partir do remoto e reaplicar as
atualizações locais
</pre>

h3. Listar dados estatísticos de revisões

<pre>
$ git log --no-merges --author="Nome Completo" --stat --pretty=oneline db00991..001eb43
</pre>

---------

h2. Operações sobre arquivos

h3. Adicionar arquivos na área de staging

<pre>
$ git add <arquivo>
$ git add *
$ git add --all

Irá marcar os arquivos modificados como prontos para serem enviados ao repositório local (commit)

</pre>

h3. Remover arquivos do repositório

<pre>
$ git rm <arquivo>
$ git rm <pasta>
</pre>

h3. Reverter a atualização em um arquivo

<pre>
$ git checkout <arquivo>
</pre>

h3. Commit dos arquivos da área de staging

<pre>
$ git commit -m "Issue #<nnnn> - <Comentários das alterações>"
</pre>

Onde <nnnn> é o número da Issue a que se refere o commit

Exemplo:

<pre>
$ git commit -m "Issue #1885 - Implementa o construtor da classe Imap"

O uso do número da issue no comentário do commit fará com que o Redmine anote no histórico da issue
o número da revisão do commit

Caso uma mensagem de commit esteja fora do padrão, o servidor irá retornar um aviso de erro e o push
não será efetivado
</pre>

h3. Colocar alterações locais em área temporária

<pre>
$ git stash -u -a

Irá salvar as atualizações locais e retornar o repositório à posição da última sincronização
</pre>

h3. Retornar alterações na área temporária

<pre>
$ git stash pop

$ git stash apply

Pode ser combinado com o identificador do pacote. Por exemplo:

$ git stash pop stash@{1}

</pre>

h3. Visualizar diferenças

<pre>
$ git diff <branch_origem> <branch_destino>

$ git diff <commit> <commit>

$ git diff <arquivo>
</pre>

h3. Aplicar um patch

<pre>
$ patch -p1 -i <arquivo-diff>

Gere o arquivo de diferenças com o comando git diff
</pre>

h3. Corrigir a descrição do último commit antes do push

<pre>
$ git commit --amend
</pre>

h3. Corrigir a descrição do último commit após o push

<pre>
$ git commit --amend

$ git push --force-with-lease
</pre>

h3. Alterar o comentário de uma revisão antiga

<pre>
$ git pull --rebase
$ git rebase HEAD~5
(mostra 5 revisões e permite navegar sobre elas e alterar o comentário)
$ git push -f
</pre>

h3. Posicionar no commit anterior ao topo

<pre>
$ git reset HEAD~1
</pre>

-----

h2. Tags

h3. Criar uma tag

<pre>
$ git tag <nome-da-tag>

Posicionar no branch que será origem da tag
</pre>

h3. Remover uma tag

<pre>
$ git tag -d <nome-da-tag>
</pre>

h3. Enviar tags para o repositório remoto

<pre>
$ git push --tags
</pre>

h3. Remover uma tag no repositório remoto

<pre>
$ git push --delete origin <nome-da-tag>
</pre>

h3. Listar tags do repositório local

<pre>
$ git tag
</pre>

h3. Listar tags do repositório remoto

<pre>
$ git ls-remote --tags origin
</pre>

------

h2. Softwares com interface gráfica para git

<pre>
* git-gui
* gitk
</pre>