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>
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>