// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Usando Suporte Git no NetBeans IDE
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Usando Suporte Git no NetBeans IDE - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Usando Suporte Git no NetBeans IDE

O NetBeans IDE fornece o suporte ao cliente de controle de versão GIT. O Suporte ao Git do IDE permite executar tarefas de controle de versão diretamente de seu projeto dentro do IDE. Este documento demonstra como executar tarefas básicas de controle de versão no IDE orientando você pelo fluxo de trabalho padrão ao usar o software de controle de versão.

O Git é um sistema de controle de versão gratuito e de código-fonte aberto, projetado para tratar de tudo de um projeto pequeno a muito grande com rapidez e eficiência. Cada clone do Git é um repositório com todos os recursos com histórico completo e recursos completos de rastreamento da revisão, não dependente de acesso à rede ou de um servidor central. A ramificação e a mesclagem são rápidas e fáceis de serem feitas. O Git é usado para o controle de versão de arquivos, de forma similar a ferramentas como Mercurial, Subversion, CVS, Perforce etc.



image::images/netbeans-stamp-80-74.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.4 e 8.0"]



== Requisitos

*Para concluir este tutorial, você precisa dos seguintes recursos e softwares.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Versão 7.4 ou 8.0 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit+] (JDK) |Versão 7 ou 8 
|===


== Inicializando um Repositório Git

Para inicializar um repositório Git de arquivos existentes que ainda não estão sob o controle de versão, é preciso completar as seguintes etapas:

1. Na janela Projetos, selecione um projeto sem controle de versão e clique com o botão direito do mouse no nome do projeto.
2. No menu de contexto, escolha  ``Controle de Versão``  >  ``Inicializar o Repositório Git``  (alternativamente, no menu principal escolha  ``Equipe``  >  ``Git``  >  ``Inicializar`` ).

[.feature]
--
image::images/initialize-git-repo-small.png[role="left", link="images/initialize-git-repo.png"]
--


1. Especifique o caminho para o repositório em que você armazenará seus arquivos com controle de versão na caixa de diálogo  ``Inicializar Repositório do Git``  ou clique em Procurar e navegue para o diretório necessário.
2. Clique em OK.

Uma subpasta  ``.git``  é criada na pasta especificada na etapa 3 acima (sua pasta do projeto NetBeans por default), que é seu repositório Git onde todos os dados dos snapshots de seu projeto são armazenados. O Git inicia o controle de versão de todos os arquivos na pasta que você especificou.
Você pode abrir  ``Janela``  >  ``Saída``  >  ``Saída``  para exibir o relatório do IDE sobre o andamento da criação do repositório sob seu diretório local de trabalho.

image::images/output-init.png[]

Todos os projetos são marcados como  ``Adicionados``  em sua Árvore de Trabalho. Para exibir o <<viewFileStatus,status>> de um arquivo, coloque o cursor sobre o nome do arquivo na janela Projetos. O status do arquivo na Árvore de Trabalho é exibido em verde na direita da barra, como mostrado na figura a seguir.

image::images/new-locally.png[]

Após ter inicializado o repositório Git, você <<add,adiciona>> arquivos ou <<committing,confirma-os>> diretamente no repositório Git.


== Clonando um Repositório Git

Para obter uma cópia de um repositório Git já existente, é preciso cloná-lo. Assegure que você conheça o URL do repositório Git antes de iniciar o assistente Clonar Repositório no IDE.

1. Escolha  ``Equipe``  >  ``Git``  >  ``Clonar``  no menu principal. O Assistente Clonar Repositório é Exibido.

[.feature]
--
image::images/clone-wizard-small.png[role="left", link="images/clone-wizard.png"]
--


1. Na página Repositório, especifique o caminho da localização do repositório Git, o nome de usuário e senha (você pode salvá-los para uso futura se necessário).
2. (Opcional) Clique em Configuração de Proxy para exibir a caixa de diálogo Opções e especificar as definições do servidor proxy. Clique em OK quando finalizar.
3. Clique em Próximo para ir para a próxima etapa do assistente.
4. Na página Ramificações Remotas, selecione as ramificações de repositório a serem extraídas (por download) para seu repositório local. Clique em Próximo.
5. Na página Diretório de Destino, especifique o seguinte:
* No campo Diretório-Pai, o caminho do diretório desejado para o repositório clonado em seu disco rígido (alternativamente, clique no botão Procurar e navegue para o diretório).
O campo Diretório-Pai é preenchido com o caminho para o diretório default  ``NetBeansProjects``  onde todos os projetos do NetBeans são armazenados.
* No campo Nome do Clone, o nome da pasta local onde o projeto original será clonado.
Por default, o Nome do Clone é preenchido com o nome real do repositório Git.
* No campo Efetuar Check-out da Ramificação, selecione a ramificação cujo check-out deverá se feito na árvore de trabalho.
* No campo Nome Remoto, o nome que representa o repositório original sendo clonado.
 ``origin``  é o apelido default do repositório sendo clonado. Esse é o valor recomendado.
* Deixe selecionada a caixa de seleção Varrer por projetos do NetBeans após clonar para ativar a pós-varredura assim que a clonagem finalizar. (O plug-in pesquisa projetos NetBeans nos recursos clonados e se oferece para abrir os projetos encontrados).

[start=6]
. Clique em Finalizar.
Após o repositório do Git ser clonado, a pasta de metadados  ``.git``  é criada dentro da pasta selecionada no assistente.


=== Clonando um repositório a partir do GitHub por meio do Protocolo SSH

Para clonar um repositório por meio do GitHub usando o Protocolo SSH, faça o seguinte:

NOTE:  é preciso ter uma conta do GitHub e ser membro do projeto para poder clonar por meio de SSH.

1. Escolha  ``Equipe``  >  ``Git``  >  ``Clonar``  no menu principal. O Assistente Clonar Repositório é Exibido.
2. Na página Repositório Remoto do assistente Clonar Repositório, especifique o caminho para o repositório requerido no campo URL do Repositório, por exemplo,  ``git@github.com:tstupka/koliba.git`` .
3. Verifique se  ``git``  está especificado no campo de texto Nome de Usuário.
4. Selecione a opção Chave privada/pública.
5. (*Ignorar se usar o agente SSH ou Pageant para acesso SSH automatizado para o servidor Git.*) Conclua as seguintes etapas para acessar o servidor Git usando a chave SSH privada e uma frase-senha:


[start=1]
1. Especifique o caminho para o arquivo da chave, por exemplo  ``C:\Users\key`` .

NOTE:  o formato da chave privada openssh é necessário. Chaves geradas por PuTTYgen para Microsoft Windows deve ser convertido para o formato openssh antes de usá-los no IDE.


. Insira a senha para o arquivo da chave, por exemplo  ``abcd`` .
. (Opcional) Selecione a opção Salvar Senha, se necessário.


. (*Aplica-se se usar o agente SSH ou Pageant para acesso de SSH automatizado para o servidor Git.*) Deixe os campos Arquivo de Chave Privada e Frase-Senha vazios para obter acesso autenticado do IDE para o servidor Git, por meior de agente SSH ou Pageant configurado.
. (Opcional) Clique em Configuração de Proxy para exibir a caixa de diálogo Opções e especificar as definições do servidor proxy. Clique em OK quando finalizar.

[.feature]
--
image::images/github-repo-small.png[role="left", link="images/github-repo.png"]
--


. Clique em Próximo.
. Na página Ramificações Remotas, selecione as ramificações de repositório a serem extraídas (por download) para seu repositório local; por exemplo,  ``master`` .

[.feature]
--
image::images/github-branches-small.png[role="left", link="images/github-branches.png"]
--


. Clique em Próximo.
. Na página Diretório de Destino, especifique o seguinte:
* No campo Diretório-Pai, o caminho do diretório desejado para o repositório clonado em seu disco rígido (alternativamente, clique no botão Procurar e navegue para o diretório).
O campo Diretório-Pai é preenchido com o caminho para o diretório default  ``NetBeansProjects``  onde todos os projetos do NetBeans são armazenados.
* No campo Nome do Clone, o nome da pasta local onde o projeto original será clonado.
Por default, o Nome do Clone é preenchido com o nome real do repositório Git.
* No campo Efetuar Check-out da Ramificação, selecione a ramificação cujo check-out deverá se feito na árvore de trabalho.
* No campo Nome Remoto, o nome que representa o repositório original sendo clonado.
 ``origin``  é o apelido default do repositório sendo clonado. Esse é o valor recomendado.
* Deixe selecionada a caixa de seleção Varrer por projetos do NetBeans após clonar para ativar a pós-varredura assim que a clonagem finalizar. (O plug-in pesquisa projetos NetBeans nos recursos clonados e se oferece para abrir os projetos encontrados).

[.feature]
--
image::images/github-destination-small.png[role="left", link="images/github-destination.png"]
--


. Clique em Finalizar.
Após o repositório ter sido clonado, a mensagem Clonagem Concluída é exibida.

image::images/clone-completed.png[]


. Escolha a opção desejada.


== Adicionando Arquivos em um Repositório Git

 Para começar a rastrear um novo arquivo e também colocar em armazenamento temporário as alterações de um arquivo já rastreado no repositório do Git, é preciso adicioná-lo no repositório.

Quando você adiciona arquivos em um repositório do Git, o IDE compõe e salva snapshots primeiro de seu projeto no Índice. Após você executar a confirmação, o IDE salva estes snapshots no HEAD. O IDE permite escolher entre os dois fluxos de trabalho descritos na tabela a seguir.

|===
|Descrição do Fluxo de Trabalho |Adicione explicitamente arquivos novos ou modificados ao Índice e confirme somente os arquivos em armazenamento temporário no Índice para o HEAD |Ignore a adição de arquivos novos ou modificados para o Índice e confirme os arquivos requeridos diretamente para o HEAD 

|Etapas a Seguir no Fluxo de Trabalho  |

1. Na janela Projetos, clique com o botão direito do mouse no arquivo que deseja adicionar.
2. No menu de contexto, escolha  ``Git``  >  ``Adicionar`` .  Esse procedimento adiciona o conteúdo do arquivo ao Índice antes de confirmá-lo.
3. Na janela Projetos, clique com o botão direito do mouse no arquivo que deseja confirmar.
4. Na caixa de diálogo Confirmar, selecione as alterações entre o botão de alternância HEAD e índice (image::images/changes-head-index.png[]).  Isso exibe uma lista dos arquivos que já estão em armazenamento temporário.
5. Confirme os arquivos como descrito na seção <<committing,Confirmando Código-fonte em um Repositório>> abaixo.
 |

1. Na janela Projetos, clique com o botão direito do mouse no arquivo que deseja confirmar.
2. No menu de contexto, escolha  ``Git``  >  ``Confirmar`` .
3. Na caixa de diálogo Confirmar, marque Selecionar as Alterações entre o botão de alternância Índice e Árvore de Trabalho (image::images/changes-head-wt.png[]). 
Isso exibe uma lista dos arquivos que não estão em armazenamento temporário.

[start=4]
. Confirme os arquivos como descrito na seção <<committing,Confirmando Código-fonte em um Repositório>> abaixo.
 
|===

NOTE:  o <<viewFileStatus,status>> do arquivo no HEAD é exibido em verde na esquerda da barra, como mostrado na figura a seguir.

image::images/new.png[]

A ação funciona de forma recursiva se chamada em pastas enquanto respeita a estrutura de conteúdo de pasta plana do NetBeans IDE.


== Editando Arquivos

Após ter um projeto com controle de versão Git aberto no IDE, é possível começar a fazer alterações nos códigos-fonte. Como acontece com qualquer projeto aberto no NetBeans IDE, é possível abrir os arquivos no Editor de Código-fonte clicando duas vezes em seus nós, conforme eles aparecem nas janelas do IDE (ou seja, janelas Projetos (Ctrl-1), Arquivos (Ctrl-2) e Favoritos (Ctrl-3)).

Quando você trabalha com códigos-fonte no IDE, há vários componentes de IU a sua disposição, o que ajuda a exibir e usar os comandos de controle de versão:

* <<viewChanges,Exibindo Alterações no Editor de Código-fonte>>
* <<viewFileStatus,Exibindo Informações de Status do Arquivo>>
* <<revert,Revertendo Alterações>>


=== Exibindo alterações no Editor de Código-fonte

Quando abre um arquivo com controle de versão no Editor de Código-fonte do IDE, você pode ver alterações em tempo real acontecendo em seu arquivo, conforme ele é modificado em relação à versão base do repositório do Git. Conforme você trabalha, o IDE usa a codificação de cor nas margens do Editor de Código-fonte para fornecer as seguintes informações:

|===
|*Azul* (       ) |Indica as linhas alteradas desde a revisão anterior. 

|*Verde* (       ) |Indica as linhas adicionadas desde a revisão anterior. 

|*Vermelho* (       ) |Indica as linhas removidas desde a revisão anterior. 
|===

A margem esquerda do Editor de Código-fonte mostra as alterações que ocorrem linha por linha. Quando você modifica uma determinada linha, as alterações são imediatamente mostradas na margem esquerda.

image::images/left-margin.png[]

NOTE:  você pode clicar em um agrupamento colorido na margem para chamar todos os comandos de controle de versão. Por exemplo, a figura abaixo mostra os widgets disponíveis quando você clica em um ícone vermelho, indicando que linhas foram removidas de sua cópia local:

image::images/left-widgets.png[]

A margem direita do Editor de Código-fonte fornece uma visão geral que exibe as alterações feitas no arquivo como um todo, do início ao fim. A codificação de cor é gerada imediatamente quando você altera o arquivo.

image::images/right-margin.png[]

*Observação*: você pode clicar em um ponto específico na margem para trazer imediatamente o seu cursor em linha para esse local no arquivo. Para exibir o número de linhas afetadas, passe o mouse sobre os ícones coloridos na margem direita:

image::images/right-lines-number.png[]


=== Exibindo Informações de Status do Arquivo

Quando você está trabalhando nas janelas Projetos (Ctrl-1), Arquivos (Ctrl-2), Favoritos (Ctrl-3) ou nas views de Controle de Versão, o IDE fornece algumas funcionalidades visuais que ajudam a exibir as informações de status sobre seus arquivos. No exemplo a seguir, observe como o emblema (por exemplo, image::images/blue-badge.png[]), cor do nome do arquivo, e label de status adjacente, todos coincidem com outros para fornecer a você uma maneira efetiva e simples para controlar informações sobre seus arquivos de controle de versão:

image::images/file-status.png[]

Os emblemas, a codificação de cor, as legendas de status do arquivo e, talvez o mais importante, o Visualizador de Diferenciação Git, ajudam você a exibir e gerenciar as informações de controle de versão no IDE.

* <<badges,Emblemas e Codificação de Cor>>
* <<fileStatus,Labels de Status do Arquivo>>
* <<versioningView,View Controle de Versão do Git>>


==== Emblemas e Codificação de Cor

Os emblemas são aplicados ao projeto, pasta e nós do pacote e informam o status dos arquivos contidos nesse nó:

A tabela a seguir exibe o esquema de cores usado nos emblemas:

|===
|Componente de IU |Descrição 

|*Emblema Azul* (image::images/blue-badge.png[]) |Indica a presença de arquivos que foram modificados, adicionados ou deletados de sua árvore de trabalho. No caso de pacotes, esse emblema se aplica somente ao pacote em si, e não aos seus subpacotes. Para projetos ou pastas, o emblema indica as alterações nesse item, ou em qualquer uma das subpastas contidas. 

|*Emblema Vermelho* (image::images/red-badge.png[]) |Marca projetos, pastas ou pacotes que contêm arquivos _conflitantes_. No caso de pacotes, esse emblema se aplica somente ao pacote em si, e não aos seus subpacotes. Para projetos ou pastas, o emblema indica os conflitos nesse item ou em qualquer uma das subpastas contidas. 
|===

A codificação de cor é aplicada aos nomes de arquivo para indicar seu status atual em relação ao repositório:

|===
|Cor |Exemplo |Descrição 

|*Sem cor específica (preto)* |image::images/black-text.png[] |Indica que o arquivo não tem alterações. 

|*Azul* |image::images/blue-text.png[] |Indica que o arquivo foi modificado localmente. 

|*Verde* |image::images/green-text.png[] |Indica que o arquivo foi adicionado localmente. 

|*Vermelho* |image::images/red-text.png[] |Indica que o arquivo tem conflito de mesclagem. 

|*Cinza* |image::images/gray-text.png[] |Indica que os arquivo é ignorado pelo Git e não será incluído nos comandos de controle de versão (ou seja, Atualizar e Confirmar). Os arquivos não podem ser ignorados se estiverem sob controle de versão. 
|===


==== Labels de Status do Arquivo

O IDE exibe dois valores de status para um arquivo:

* Um status que descreve as diferenças entre os arquivos na Árvore de Trabalho e no estado de Índice,
* Um status que descreve as diferenças entre os arquivos no estado de Índice e a confirmação atual no HEAD.

Os labels de status do arquivo fornecem uma indicação textual do status dos arquivos com controle de versão nas janelas do IDE:

|===
|Label do Status |Significado 

|*-* |Não modificado 

|*A* |Adicionado 

|*U* |Atualizado mas não mesclado 

|*M* |Modificado 

|*D* |Deletado 

|*I* |Ignorado 

|*R* |Renomeado 
|===

Por default, o IDE exibe as informações de status (novo, modificado, ignorado etc.) e de pastas em texto cinza à direita dos arquivos, à medida que eles são listados em janelas.

image::images/file-labels.png[]

Os arquivos com a funcionalidade de conflito de mesclagem têm o status de não mesclado que é normalmente anotado em vermelho até que os arquivos não sejam resolvidos por sua ação explícita. O label de de status para arquivos não mesclados depende do cenário (por exemplo,  ``A/A``  - não mesclado, ambos adicionados).

Os labels de status do arquivo podem ser ativados e desativados, ao selecionar  ``Exibir``  >  ``Mostrar Labels de Controle de Versão``  no menu principal.


==== View Controle de Versão do Git

A view Controle de Versão do Git fornece uma lista em tempo real de todas as alterações feitas nos arquivos em uma pasta selecionada de sua árvore de trabalho local. Ela é aberta por default no painel inferior do IDE, listando os arquivos adicionados, deletados ou modificados.

Para abrir a view Controle de Versão, selecione um arquivo ou pasta com controle de versão (ou seja, na janela Projetos, Arquivos ou Favoritos) e escolha  ``Git``  >  ``Mostrar Alterações``  no menu do botão direito do mouse ou escolha  ``Equipe``  >  ``Mostrar Alterações``  no menu principal. A janela seguinte aparece na parte inferior do IDE:

[.feature]
--
image::images/versioning-view-small.png[role="left", link="images/versioning-view.png"]
--

Por default, a view Controle de Versão exibe uma lista de todos os arquivos modificados no pacote ou pasta selecionada na Árvore de Trabalho. Usando o botões da barra de ferramentas, é possível optar por exibir a lista de arquivos que têm diferenças entre o Índice e o HEAD, entre a Árvore de Trabalho e o Índice ou entre a Árvore de Trabalho e o HEAD. É possível clicar nos cabeçalhos das colunas acima dos arquivos listados para classificá-los por nome, status ou local.

A barra de ferramentas da view Controle de Versão também inclui botões que permitem que você chame as tarefas Git mais comuns em todos os arquivos exibidos na lista. A tabela a seguir lista os comandos do Git disponíveis na barra de ferramentas da view Controle de Versão:

|===
|Ícone |Nome |Função 

|image::images/changes-head-wt.png[] |*Alterações entre HEAD e Árvore de Trabalho* |Exibe uma lista de arquivos que já estão em armazenamento temporário ou somente modificados/criados e ainda não estão em armazenamento temporário. 

|image::images/changes-head-index.png[] |*Alterações entre HEAD e Índice* |Exibe uma lista de arquivos que estão em armazenamento temporário. 

|image::images/changes-index-wt.png[] |*Alterações entre o Índice e a Árvore de Trabalho* |Exibe os arquivos que têm diferenças entre seus estados de armazenamento temporário e na Árvore de Trabalho. 

|image::images/refresh.png[] |*Atualizar Status* |Atualiza o status dos arquivos e pastas selecionados. Os arquivos exibidos na view Controle de Versão podem ser atualizados para refletir quaisquer alterações que possam ter sido feitas externamente. 

|image::images/open-diff.png[] |*Abrir Diferença* |Abre o Visualizador de Diferenciação que fornece uma comparação lado a lado de suas cópias locais e das versões mantidas no repositório. 

|image::images/update.png[] |*Reverter Modificações* |Exibe a caixa de diálogo <<revertdialog,Reverter Modificações>>. 

|image::images/commit-button.png[] |*Confirmar Alterações* |Exibe a caixa de diálogo <<commitdialog,Confirmar>>. 
|===

Você pode acessar outros comandos do Git na view Controle de Versão, selecionando uma linha da tabela que corresponde a um arquivo modificado, e escolhendo um comando do menu com o botão direito do mouse:

[.feature]
--
image::images/versioning-right-click-small.png[role="left", link="images/versioning-right-click.png"]
--


=== Comparando Revisões de Arquivos

Comparar versões de arquivo é uma tarefa comum ao se trabalhar com projetos com controle de versão. O IDE permite comparar versões ao usar o comando Diferenciar:

NOTE:  vários modos de comparação - Diff To HEAD, Diff To Tracked e Diff To - estão disponíveis no IDE.

1. Selecione um arquivo ou pasta com versão (por exemplo, na janela  ``Projetos`` ,  ``Arquivos``  ou  ``Favoritos`` ).
2. Escolha  ``Team``  >  ``Diff``  >  ``Diff to HEAD``  no menu principal.
Um Visualizador gráfico de Diferenciação é aberto para os arquivos selecionados na janela principal do IDE. O Visualizador de Diferenciação exibe duas cópias nos painéis lado a lado. Quanto mais atual a cópia aparecer no lado direito, ou seja, você está comparando uma revisão no repositório contra sua árvore de trabalho, a árvore de trabalho é exibida no painel direito:

[.feature]
--
image::images/diff-viewer-small.png[role="left", link="images/diff-viewer.png"]
--

O Visualizador de Diferenciação usa a mesma <<color-coding-table,codificação de cor>> usada para exibir alterações de controle de versão. Na captura de tela exibida acima, o bloco verde indica o conteúdo que foi adicionado à revisão mais atual. O bloco vermelho indica que o conteúdo da revisão anterior foi removido da última revisão. Azul indica que as alterações ocorreram na(s) linha(s) realçada(s).

NOTE:  outras revisões podem ser selecionadas para listas drop-down  ``Diff``  e  ``to``  abaixo da barra de ferramentas Visualizador de Diferenciação.

A barra de ferramentas Visualizador de Diferenciação também inclui botões que permitem chamar as tarefas mais comuns do Git em todos os arquivos exibidos na lista. A tabela a seguir lista os comandos do Git disponíveis na barra de ferramentas do Visualizador de Diferenciação:

|===
|Ícone |Nome |Função 

|image::images/changes-head-wt.png[] |*Alterações entre HEAD e Árvore de Trabalho* |Exibe uma lista de arquivos que já estão em armazenamento temporário ou somente modificados/criados e ainda não estão em armazenamento temporário. 

|image::images/changes-head-index.png[] |*Alterações entre HEAD e Índice* |Exibe uma lista de arquivos que estão em armazenamento temporário. 

|image::images/changes-index-wt.png[] |*Alterações entre o Índice e a Árvore de Trabalho* |Exibe os arquivos que têm diferenças entre seus estados de armazenamento temporário e na árvore de trabalho. 

|image::images/nextdiff.png[] |*Ir para a Próxima Diferença* |Exibe a próxima diferença no arquivo. 

|image::images/prevdiff.png[] |*Ir para a Diferença Anterior* |Exibe a diferença anterior no arquivo. 

|image::images/refresh.png[] |*Atualizar Status* |Atualiza o status dos arquivos e pastas selecionados. Os arquivos exibidos na janela de Controle de Versão podem ser atualizados para refletir quaisquer alterações feitas externamente. 

|image::images/update.png[] |*Reverter Modificações* |Exibe a caixa de diálogo <<revertdialog,Reverter Modificações>>. 

|image::images/commit-button.png[] |*Confirmar Alterações* |Exibe a caixa de diálogo <<commitdialog,Confirmar>>. 
|===

Se você estiver executando uma diferença em sua cópia de trabalho local, o IDE permite fazer alterações diretamente no Visualizador de Diferenciação. Para fazer isso, você pode colocar o cursor no painel direito do Visualizador de Diferenciação e modificar seu arquivo adequadamente, caso contrário, use os ícones in-line exibidos ao lado de cada alteração realçada:

|===
|Ícone |Nome |Função 

|image::images/insert.png[] |*Substituir* |Insere o texto realçado em sua cópia da Árvore de Trabalho. 

|image::images/arrow.png[] |*Mover Todos* |Reverte toda a cópia local da Árvore de Trabalho. 

|image::images/remove.png[] |*Remover* |Remove o texto realçado da cópia local da Área de Trabalho. 
|===


=== Revertendo Alterações

Para descartar as alterações locais feitas nos arquivos selecionados em sua árvore de trabalho e substituir os arquivos usando os que estejam no Índice ou HEAD:

1. Selecione um arquivo ou pasta com versão (por exemplo, na janela  ``Projetos`` ,  ``Arquivos``  ou  ``Favoritos`` ).
2. Escolha  ``Equipe``  >  ``Reverter Modificações``  no menu principal.
A caixa de diálogo  ``Reverter Modificações``  é exibida.

image::images/revert.png[]


. Especificar opções adicionais (por exemplo,  ``Reverter Somente as Alterações Não Confirmadas no Índice para o HEAD`` ) .
. Clique em Reverter.

O IDE substitui os arquivos selecionados pelos usando os especificados na <<three,etapa 3>> acima.


== Confirmando Códigos-fonte em um Repositório

Para confirmar arquivos para o repositório Git:

1. Na janela  ``Projetos`` , clique com o botão direito do mouse no arquivo que deseja confirmar.
2. No menu de contexto, escolha  ``Git``  >  ``Confirmar`` .

A caixa de diálogo  ``Confirmar``  é exibida.

[.feature]
--
image::images/commit-small.png[role="left", link="images/commit.png"]
--

A caixa de diálogo  ``Confirmar``  contém os seguintes componentes:

* A área de texto  ``Mensagem de Confirmação``  descreve a alteração que está sendo confirmada
* As listas drop-down  ``Autor``  e  ``Confirmador``  permitem distinguir entre quem fez a alteração e quem confirmou fisicamente o arquivo, se necessário.
* A seção  ``Arquivos a serem Confirmados``  que lista:
* todos os arquivos modificados,
* todos os arquivos que foram deletados da Árvore de Trabalho (localmente),
* todos os arquivos novos (ou seja, arquivos que ainda não existem no repositório Git),
* todos os arquivos que você renomeou.

Dois botões de alternância que alternam o modo no qual a confirmação deve ser executada estão aqui disponíveis:

|===
|Componente de IU |Nome |Descrição 

|image::images/changes-head-index.png[] |*Alterações entre HEAD e Índice* |Exibe uma lista de arquivos que estão em armazenamento temporário. 

|image::images/changes-head-wt.png[] |*Alterações entre HEAD e Árvore de Trabalho* |Exibe uma lista de arquivos que já estão em armazenamento temporário ou somente modificados/criados e ainda não estão em armazenamento temporário. 
|===

*Observação*: para especificar se os arquivos individuais devem ser excluídos da confirmação, cancele a seleção da caixa de seleção na primeira coluna denominada  ``Confirmar``  ou clique com o botão direito do mouse em uma linha de arquivo na coluna  ``Ação de Confirmação``  e escolha  ``Excluir da confirmação``  no menu pop-up. Para exibir aqui o Visualizador de Diferenciação, clique com o botão direito do mouse em uma linha de arquivo na coluna  ``Ação de Confirmação``  e escolha  ``Diferenciar``  no menu pop-up.

* A seção  ``Atualizar Problema``  acompanha os problemas relativos à alteração que está sendo confirmada.

*Observação*: é preciso instalar o plug-in JIRA ou Subversion para iniciar o rastreamento de problemas no IDE.


. Digite uma mensagem de confirmação na área de texto  ``Mensagem de Confirmação`` . Alternativamente, você pode executar um dos seguintes procedimentos:
* clique no ícone  ``Mensagens Recentes``  (image::images/recent-msgs.png[]) localizado no canto superior direito para ver e selecionar de uma lista de mensagens que você usou anteriormente existente.
* Clique no ícone  ``Carregar Modelo``  (image::images/msg-template.png[]) localizado no canto superior direito para selecionar um modelo de mensagem.
. Depois de especificar ações para arquivos individuais, clique em  ``Confirmar`` . 
O IDE executa a confirmação e armazena seus snapshots no repositório. A barra de status do IDE, localizada na parte inferior direita da interface, é exibida conforme a ação de confirmação ocorre. Com uma confirmação bem-sucedida, os emblemas de controle de versão desaparecem nas janelas  ``Projetos`` ,  ``Arquivos``  e  ``Favoritos``  e a codificação de cor dos arquivos confirmados volta a ser preta.


== Trabalhando com Ramificações

O suporte ao Git do IDE permite manter diferentes versões de toda uma base de códigos usando ramificações.

Quando você trabalha com ramificações no IDE, as seguintes ações são suportadas:

* <<branchCreate,Criando>>
* <<branchCheckOut,Fazendo check-out>>
* <<branchMerge,Mesclando>>
* <<branchDelete,Deletando>>


=== Criando uma Ramificação

Para criar uma ramificação local, caso deseje trabalhar em uma versão separada de seu sistema de arquivos para fins de estabilização ou experimento sem perturbar o tronco principal, complete as seguintes etapas:

1. Na janela Projetos ou Arquivos, escolha um projeto ou pasta do repositório no qual deseja criar a ramificação.
2. No menu principal, escolha Equipe >Ramificação/Tag > Criar Ramificação.

NOTE:  como alternativa, clique com o botão direito do mouse no projeto ou pasta com controle de versão e escolha Git > Ramificação/Tag > Criar Ramificação no menu pop-up.

A caixa de diálogo Criar Ramificação é exibida.

[.feature]
--
image::images/create-branch-small.png[role="left", link="images/create-branch.png"]
--


. No campo Nome da Ramificação, insira o nome da ramificação que está sendo criada.
. Especifique a revisão necessária ao inserir um ID de confirmação, ramificação existente, ou nome da tag no campo Revisão, ou pressione Selecionar para exibir uma lista das revisões mantidas no repositório.
. (Opcional) Na caixa de diálogo Selecionar Revisão, expanda Ramificações e escolha a ramificação necessária, especifique o ID de confirmar na lista adjacente e pressione Selecionar.
. Reveja as informações dos campos ID da Confirmação, Autor e Mensagem específicos da revisão sendo ramificada.
A ramificação é adicionada à pasta  ``Ramificações/Local``  do repositório Git.

[.feature]
--
image::images/branch-added-small.png[role="left", link="images/branch-added.png"]
--


=== Fazendo Check-out

Se precisar editar arquivos em uma ramificação existente, você pode fazer check-out da ramificação para copiar os arquivos para sua Árvore de Trabalho.

Para fazer check-out de uma versão, proceda da seguinte forma:

1. Escolha Equipe > Check-out > Fazer Check-out da Revisão no menu principal. 
A caixa de diálogo Fazer Check-out da Revisão Selecionada é exibida.

[.feature]
--
image::images/chkout-rev-small.png[role="left", link="images/chkout-rev.png"]
--


. Especifique a revisão necessária ao inserir um ID de confirmação, uma ramificação existente ou o nome da tag no campo Revisão, ou pressione Selecionar para exibir uma lista das revisões mantidas no repositório.
. Ignore se você não pressionou Selecionar na etapa anterior. Na caixa de diálogo Selecionar Revisão, expanda Ramificações e escolha a ramificação necessária, especifique o ID de confirmação na lista adjacente, se necessário, e pressione Selecionar.

NOTE:  se a revisão especificada se refere a uma confirmação válida que não esteja marcada com um nome de ramificação, seu HEAD se torna desanexado e você não mais está em nenhum ramificação.


. Reveja as informações dos campos ID de Confirmação, Autor e Mensagem específicos da revisão cujo check-out está sendo feito.
. Para criar uma nova ramificação da versão submetida a check-out, escolha a opção Efetuar Check-out como uma Nova Ramificação e insira o nome no campo Nome da Ramificação.
. Pressione Check-out para fazer check-out da revisão.
Os arquivos na Árvore de Trabalho e no Índice são atualizados para coincidirem com a versão na revisão especificada.

NOTE:  caso deseje alternar seus arquivos para uma ramificação existente (por exemplo, para uma confirmação que não esteja no topo de uma de suas ramificações), você pode usar o comando Equipe > Git > Ramificação > Alternar para a Ramificação, especificar a ramificação na caixa de diálogo Alternar para a Ramificação Selecionada, fazer check-out como uma nova ramificação (opcionalmente) e pressionar Alternar.

O IDE suporta check-out contextual de arquivos, pastas ou projetos no momento selecionados no IDE. Para fazer check-out de alguns arquivos (e não de uma ramificação), siga as seguintes etapas:

1. Escolha Equipe > Check-out > Fazer Check-out de Arquivos no menu principal. 
A caixa de diálogo Fazer Check-out dos Caminhos Selecionados é exibida.

[.feature]
--
image::images/chkout-path-small.png[role="left", link="images/chkout-path.png"]
--


. Escolha a opção Atualizar Índice com Entradas da Revisão Selecionada.
Caso selecionado, o Índice é atualizado com o estado da revisão selecionada antes do check-out do arquivo (ou seja, os arquivos selecionados na Árvore de Trabalho e Índice são atualizados).
. Especifique a revisão necessária ao inserir um ID de confirmação, uma ramificação existente ou o nome da tag no campo Revisão, ou pressione Selecionar para exibir uma lista das revisões mantidas no repositório.
. Ignore se você não pressionou Selecionar na etapa anterior. Na caixa de diálogo Selecionar Revisão, expanda Ramificações e escolha a ramificação necessária, especifique o número da revisão na lista adjacente se necessário e pressione Selecionar.
. Pressione Check-out para concluir o check-out.


=== Mesclando

Para portar as modificações de uma revisão do repositório para a Árvore de Trabalho, faça o seguinte:

1. Escolha Equipe > Ramificação/Tag > Mesclar Revisão no menu principal.
A caixa de diálogo Mesclar Revisão é exibida.

[.feature]
--
image::images/merge-small.png[role="left", link="images/merge.png"]
--


. Especifique a revisão necessária ao inserir um ID de confirmação, uma ramificação existente ou o nome da tag no campo Revisão, ou pressione Selecionar para exibir uma lista das revisões mantidas no repositório.
. Ignore se você não pressionou Selecionar na etapa anterior. Na caixa de diálogo Selecionar Revisão, expanda Ramificações e escolha a ramificação necessária, especifique o ID de confirmação na lista adjacente, se necessário, e pressione Selecionar.
. Pressione Mesclar.
Uma mesclagem de três vias entre a ramificação atual, o conteúdo de sua Árvore de Trabalho e a ramificação especificada é feita.

NOTE:  caso ocorra um conflito de mesclagem, o arquivo conflitante é marcado com um <<badges,emblema vermelho>> para indicar isso.

NOTE:  depois da mesclagem, ainda é necessário <<committing,confirmar>> as alterações para que sejam adicionadas ao HEAD.


=== Deletando uma Ramificação

Para deletar uma ramificação local desnecessária, conclua as seguintes etapas:

1. Escolha Equipe > Browser de Repositório no menu principal.
2. No Browser de Repositório Git, escolha a ramificação a ser deletada.

NOTE:  a ramificação precisa estar inativa, ou seja, não deve ter tido check-out na Árvore de Trabalho.


. Clique com o botão direito do mouse na ramificação selecionada e escolha Deletar Ramificação a partir do menu pop-up.
. Na caixa de diálogo Deletar Ramificação, pressione OK para confirmar a exclusão da ramificação.
A ramificação é removida do repositório local, assim como do Browser de Repositório Git.


== Trabalhando com Repositórios Remotos

Quando você trabalha com outros desenvolvedores precisa compartilhar seu trabalho, o que envolve extrair, inserir e obter dados em relação aos repositórios remotos hospedados na Internet ou em uma rede.

* <<fetch,Extraindo>>
* <<pull,Extraindo>>
* <<push,Expandindo>>


=== Extraindo

A extração recebe as alterações do repositório remoto original que você ainda não tem. Ela nunca altera quaisquer de suas ramificações locais. A extração recebe todas as ramificações dos repositórios remotos, que você pode mesclar com sua ramificação ou apenas inspecionar a qualquer momento.

Para extrair as atualizações, faça o seguinte:

1. Escolha Equipe > Remoto > Extrair.
O assistente Extrair do Repositório Remoto é exibido.

[.feature]
--
image::images/fetch-small.png[role="left", link="images/fetch.png"]
--


. Na página Repositório Remoto do assistente, selecione a opção Repositório configurado (para usar o caminho para o repositório anteriormente configurado) ou a opção Especificar Local do Repositório Git (para definir o caminho para um repositório remoto que ainda não foi acessado, seu nome, e login e senha, e qualquer configuração de proxy necessária) e clique em Próximo.
. Na página Ramificações Remotas do assistente, escolha as ramificações para obter as alterações e clique em Finalizar.
Uma cópia local da ramificação remota é criada. A ramificação selecionada é atualizada no diretório  ``Ramificações``  >  ``Remotas``  no Browser de Repositório Git.
Em seguida, as atualizações extraídas podem ser mescladas em uma ramificação local.


=== Extraindo

Durante a obtenção de algumas atualizações de um repositório Git remoto, as alterações são extraídas dele mesmo e mescladas no HEAD atual de seu repositório local.
Para executar a extração, conclua as seguintes etapas:

1. Escolha Equipe > Remoto > Extrair.
O assistente Extrair do Repositório Remoto é exibido.

[.feature]
--
image::images/pull-small.png[role="left", link="images/pull.png"]
--


. Na página Repositório Remoto do assistente, selecione a opção Repositório configurado (para usar o caminho do repositório anteriormente configurado) ou Especificar a Localização do Repositório Git: (para definir o caminho de um repositório remoto que ainda não foi acessado, seu nome, log-in e senha, se necessário) e clique em Próximo.
. Na página Ramificações Remotas do assistente, escolha as ramificações a serem extraídas com as alterações e clique em Finalizar.
Seu repositório local é sincronizado com o repositório de origem.


=== Expandindo

Para contribuir com alterações de seu repositório Git local para um repositório Git local, execute as seguintes etapas:

1. Escolha Equipe > Remoto > Expandir.
O assistente Expandir para o Repositório Remoto é exibido.

[.feature]
--
image::images/push-small.png[role="left", link="images/push.png"]
--


. Na página Repositório Remoto do assistente, selecione a opção Repositório configurado (para usar o caminho do repositório anteriormente configurado) ou Especificar a Localização do Repositório Git: (para definir o caminho de um repositório remoto que ainda não foi acessado, seu nome, log-in e senha, se necessário) e clique em Próximo.
. Na página Selecionar Ramificações Locais, escolha as ramificações de onde serão extraídas suas edições e clique em Próximo.
. Na página Atualizar Referências Locais, escolha as ramificações a serem atualizadas no diretório Remoto de seu repositório local e clique em Finalizar.
A ramificação do repositório remoto especificada é atualizada com o estado mais recente de sua ramificação local.


== Resumo

Este tutorial demonstrou como executar tarefas de controle de versão básicas no IDE ao guiá-lo pelo fluxo de trabalho padrão ao usar o suporte Git do IDE. Ele mostrou como configurar um projeto com controle de versão e como executar tarefas básicas em arquivos com controle de versão e apresentando-o algumas das novas funcionalidades do Git incluídos no IDE.

link:/about/contact_form.html?to=3&subject=Feedback:%20Using%20Git%20Support%20in%20NetBeans%20IDE[+Enviar Feedback neste Tutorial+]



== Consulte Também

Para ver o material relacionado, consulte os seguintes documentos:

* link:clearcase.html[+Usando o Suporte de ClearCase no NetBeans IDE+]
* link:subversion.html[+Usando Suporte ao Subversion no NetBeans IDE+]
* link:mercurial.html[+Usando Suporte ao Mercurial no NetBeans IDE+]
* link:cvs.html[+Usando Suporte ao CVS no NetBeans IDE+]
* link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG234[+Aplicando Controle de Versão às Aplicações com Controle de Versão+] em _Desenvolvendo Aplicações com o NetBeans IDE_
