Controle de Versão

O que é Controle de Versão

  • É um sistema que registra as mudanças feitas em um arquivo ou um conjunto de arquivos ao longo do tempo de forma que você possa recuperar versões específicas

Funcionalidades

  • Permite acompanhar as alterações desde as versões antigas.
  • É possível detectar e mesclar alterações nos mesmos arquivos, além de identificar conflitos.

GIT

  • Criado em 2005 por Linus Torvalds.
  • É usado para desenvolver o kernel do linux.

GitHub

  • Criado em 2008, é uma aplicação web que possibilita a hospedagem de repositórios Git.
  • Serve também como rede social para programadores

Instalação

Instalação

  • No Linux execute o comando abaixo no terminal:
    • sudo apt-get install git

Configuração

  • É importante nos identificarmos para o Git, informando nosso nome e e-mail. Em um terminal, execute os comandos a seguir:
    • $ git config --global user.name "Fulano da Silva"
    • $ git config --global user.email fulanodasilva.git@gmail.com

Iniciando o Controle de versão

  • Vá até o diretório do projeto que deseja fazer o controle de versão e execute o comando.
    • Git init

Ratreando um arquivo

  • Verificar a situação dos arquivos no repositório Git com o comando:
    • git status
  • Para rastrear use o comando:
    • git add nomedoarquivo.extensão

Repositório

  • Para gravar no repositório git os arquivos para que possam ser criado o histórico do seu trabalho:
    • git commit -m “Uma mensagem de identificação”
[master (root-commit) 8666888] Arquivo inicial de citacoes
1 file changed, 2 insertions(+)
create mode 100111 nome do arquivo.extenção

Verificando Atualizações

  • Para verificar o histórico das alterações gravadas no repositório, podemos executar o comando:
    • $ git log 
  • Lista os dois últimos commits:
    • git log -n 2
  • ​Lista um resumo bem conciso dos commits
    • git log –-oneline
  • ​Mostra um resumo dos arquivos alterados, com o número de linhas adicionadas e removidas.
    • git log –-sat

Verificando mudanças

  • Se quisermos revisar a modificação efetuada, verificando as diferenças entre o arquivo alterado e o que foi comitado anteriormente.
    • git diff

Exceção

  • Alguns arquivos são meios que indesejados para ser gravados no repositório, para facilitar é utilizado o seguinte artifício.
  • Basta criarmos um arquivo chamado .gitignore no diretório principal do nosso projeto, com os nomes dos arquivos que queremos ignorar.

.gitignore

  • arquivo.extenção - ignora um arquivo específico
  • Pasta/ - ignora uma pasta específica
  • *.extenção - ignora vários arquivos de uma determinada extenção

 

  • É importante que o arquivo .gitignore seja rastreado, porque evoluirá junto com o repositório.
  • Por isso, ao criar o .gitignore, não esqueça de adicioná-lo à área de stage com o comando:
    • $ git add .gitignore

Renomeando Arquivos

  • Para alterar o nome do arquivo pode-se usar o seguinte comando:
    • $ git mv nomeArquivo.ext novoNomeArquivo.ext

Removendo Arquivos do Repositório

  • Não adianta remover apenas arquivos do diretório, deve-se também removê-lo também da stage área.
    • $ git rm nomeArquivo.ext
  • Para mudarmos  o arquivo de diretório usa o seguinte comando:
    • $ git mv nomeArquivo.ext novaPasta/nomeArquivo.ext

Desfazendo Mudanças

  • Quando você faz uma alteração em um arquivo e não executa o git add você pode desfazer a alteração do arquivo usando o comando:
    • git checkout -- nomeArquivo.ext
  • O comando desfaz as alterações ainda não ratreadas, que ainda não estão na área de stage.
  • Se deletou o arquivo por acidente e não adicionou na área stage, para recuperar o arquivo você pode usar o camando:
    • git checkout -- nomeArquivoDeletado.ext

Desfazendo mudanças já rastreadas

  • Se alterou o arquivo e executou o git add não adianta realizar o git checkout, use o seguinte comando:
    • git reset -- nomeArquivo.ext
  • Esse comando retira o arquivo da área de stage e preserva o que foi alterado

ATENÇÃO!!!!!

  • Se invocarmos o comando git reset sem nenhum parâmetro, serão retirados todos os arquivos da área de stage. As alterações efetuadas nesses arquivos serão preservadas.

Repositório Remoto

  • Em uma empresa, lógico que todos os computadores estarão conectados em rede, então escolhe um para ser o servidor e neste crie uma pasta para o projeto e execute o seguinte comando:
    • git init --bare nomeProjeto.git
  • O parâmetro --bare serve para que o Git não crie um working tree (diretório de trabalho), impedindo que commits sejam efetuados diretamente no servidor.

Adicionando Repositório Remoto

  • É possível enviar os commits efetuados no nosso repositório local para o repositório remoto. Mas antes disso é preciso, de alguma maneira, indicar ao Git onde está localizado o repositório remoto.
  • Para ensinar ao Git onde se encontra o nosso repositório remoto, devemos utilizar o comando git remote add , no qual informa o endereço do repositório remoto.

Adicionando Repositório Remoto

  • git remote add servidor file://192.168.1.1/opt/nomePasta/nomeProjeto.git
  • Para listar os repositórios utilize o seguinte comando: git remote.
  • Para exibir uma lista de repositórios e seus respectivos endereço: git remote -v

Enviando commits para o repositório remoto

  • Para enviar os commits locais, que ainda não existem no servidor, devemos utilizar o comando git push , informando o name do repositório remoto, no nosso caso servidor, seguido de master:
    • git push servidor master

Clonando Repositório Remoto

  • Para obtermos uma cópia de um repositório Git, devemos utilizar o comando git clone informando a URL do repositório a ser clonado:
    • $ git clone file://192.168.1.1/opt/repositorios/
      nomeProjeto.git

Sicronizando Repositório Remoto

  • A sincronização do repositório local com o servidor é feita com o uso do comando git pull , onde devemos informar o name do repositório remoto que queremos sincronizar, e o nome da branch local a ser atualizada:
    • $ git pull servidor master
  • Para enviar os comits locais para o servidor usamos o seguinte comando:
    • $git push servidor master

Controle de Versão

By pakato

Controle de Versão

  • 89