Projeto

Geral

Perfil

Gitcomandos » Histórico » Versão 3

Versão 2 (Mauricio Luiz Viani, 28/09/2016 15:10 h) → Versão 3/14 (Mauricio Luiz Viani, 28/12/2016 14:28 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. h2. Selecionar branch

<pre>
$ git checkout <nome_do_branch>

Ativa o branch como padrão
</pre>

h3. h2. Adicionar arquivos na área de staging

&lt;pre&gt;
$ git add &lt;arquivo&gt;
$ git add *
$ git add --all
&lt;/pre&gt;

h2. Remover arquivos do repositório

&lt;pre&gt;
$ git rm &lt;arquivo&gt;
$ git rm &lt;pasta&gt;
&lt;/pre&gt;

h2. Exibir situação do repositório

&lt;pre&gt;
$ 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
&lt;/pre&gt;

h2. Reverter a atualização em um arquivo

&lt;pre&gt;
$ git checkout &lt;arquivo&gt;
&lt;/pre&gt;

h2. Commit dos arquivos da área de staging

&lt;pre&gt;
$ git commit -m &quot;Issue #&lt;nnnn&gt; - &lt;Comentários das alterações&gt;&quot;
&lt;/pre&gt;

Onde &lt;nnnn&gt; é o número da Issue a que se refere o commit

Exemplo:

&lt;pre&gt;
$ git commit -m &quot;Issue #1885 - Implementa o construtor da classe Imap&quot;

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
&lt;/pre&gt;

h2.
Criar branch

<pre>
$ git branch <nome_do_branch>

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

h3. h2. 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 h2. Visualizar diferenças

<pre>
$ git merge <nome_branch_mesclar> diff &lt;branch_origem&gt; &lt;branch_destino&gt;

Posicionar no branch que receberá o merge
Em caso de conflito fazer
$ git mergetool diff &lt;commit&gt; &lt;commit&gt;
</pre>

h3. Criar


h2. Aplicar
um branch a partir de uma tag patch

<pre>
$ git checkout -b <nome-do-branch> tags/<nome-da-tag>
</pre>
patch -p1 -i &lt;arquivo-diff&gt;

h3. Posicionar Gere um branch em uma revisão

<pre>
$
arquivo de diferenças (diff) com o comando git reset --hard <hash-da-revisao> diff
$ git reset --hard HEAD
</pre>

h3. Commitar uma revisão qualquer sobre um branch h2. Mesclar branches

<pre>
$ git cherry-pick --edit <hash-da-revisao> merge &lt;nome_branch_mesclar&gt;

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

-----



h2. Tags

h3.
Criar uma tag

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

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

h3. h2. Remover uma tag

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

h3. h2. Enviar tags para o repositório remoto

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

------

h2. Operações sobre o repositório Criar um branch a partir de uma tag

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
checkout -b &lt;nome-do-branch&gt; tags/&lt;nome-da-tag&gt;
</pre>

h3. h2. 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. h2. 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. h2. 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. h2. Ver o log

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

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

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

Exemplo: git remote show origin
</pre>

h3. h2. 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>

---------

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 h2. Posicionar um branch em uma revisão

<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>
reset --hard &lt;hash-da-revisao&gt;
$ git diff <branch_origem> <branch_destino>

$ git diff <commit> <commit>

$ git diff <arquivo>
reset --hard HEAD
</pre>

h3. Aplicar h2. Commitar uma revisão qualquer sobre um patch branch

<pre>
$ patch -p1 -i <arquivo-diff> git cherry-pick --edit &lt;hash-da-revisao&gt;

Gere Posicionar primeiramente no branch que receberá o arquivo de diferenças com o comando git diff commit
</pre>

------

h3.
h2. Instalar softwares gráficos

<pre>
$ apt-get install git-gui
$ apt-get install gitk
</pre>