Git Tutorial - Git Workflow

  1. git add
  2. git commit

Como acabamos de saber, adicionar um ficheiro ou submetê-lo é basicamente um processo de dois passos.

  • git add

    Adicione os arquivos à área de encenação. Como o comando abaixo,

    $ git add test1.txt
    

    O file1.txt é adicionado a partir da sua cópia de trabalho para a área de encenação e está pronto para ser enviado para o repositório. Sempre que criamos um arquivo, ele está na nossa cópia de trabalho, está no computador local e depois do comando git add, ele vai para a área de encenação.

  • git commit

    São necessários todos os arquivos da sua área de encenação para empurrá-los para o repositório.

    $ git commit -m "commit message"
    

    Nós normalmente adicionamos uma mensagem para descrever o que este commit, como o que nós mudamos nos arquivos ou projetos, então nós poderíamos obter a informação de registro deste commit no futuro.

git add

Após você ter alterado um arquivo e gravado, este arquivo em nosso computador é diferente do arquivo em nosso repositório, porque no repositório ele ainda é o mesmo conteúdo antes desta modificação. Se você digitar git status, você pode ver que o git sabe que seu arquivo foi atualizado.

$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

	modified:   test1.txt

no changes added to commit (use "git add" and/or "git commit -a")

Como sugerido pelo git, nós usamos o git add para atualizar os arquivos que serão submetidos.

$ git add test1.txt

Agora, você pode submeter este arquivo atualizado da área de encenação para o repositório.

Algumas vezes, nós atualizamos vários arquivos e é claro que poderíamos adicionar arquivos dessa forma,

$ git add test1.txt test2.txt test3.txt

Mas traz uma grande dor de cabeça se você tiver um monte de arquivos ou se o nome do arquivo for muito longo. O git tem um atalho para adicionar todos os arquivos atualizados e os arquivos desempilhados na área de encenação,

$ git add .

Aqui, . significa todos os arquivos que são diferentes do repositório.

git commit

Nós mostramos como utilizar o git commit quando introduzimos outras características do git. Basicamente, o git commit empurra a área de encenação para o repositório, e você é fortemente aconselhado a adicionar a mensagem de commit para descrever o que você alterou para este commit específico. Você pode obter todas as informações do seu log de commit de volta com o comando git log.

Submeter directamente para o repositório

Antes do que nos comprometemos, precisamos de acrescentar mudanças à área de encenação. Depois, podemos cometê-las. Mas realmente não há necessidade de adicioná-las à área de encenação. Primeiro, porque sabemos que essas mudanças queremos que no nosso projeto final, no nosso repositório ou no servidor para que todos tenham arquivos atualizados.

Então o que podemos fazer é verificar o git status primeiro, para que saibamos o que foi modificado na cópia de trabalho. Então poderíamos usar diretamente o git commit antes mesmo de adicionar essas modificações na área de encenação.

$ git commit -a -m "commit message here."

O que fazemos aqui é utilizar um atalho ao invés de adicioná-lo à área de encenação. Mas isto só é útil em certas situações, sempre que você usar este comando, você precisa ter cuidado porque ele vai pegar tudo na sua cópia de trabalho e empurrá-los diretamente para o repositório.

Emendar um Commit

Podemos ter chegado a uma situação depois de um compromisso, encontramos uma gralha ou outras pequenas falhas no código. Claro, você poderia revisar os códigos e submeter as alterações ao repositório novamente. Mas o que poderíamos fazer é reescrever este commit mais recente, e o último commit será reescrito com a nova modificação.

A bandeira --amend seguinte ao git commit diz git que este commit irá substituir o commit anterior que não estará mais no seu ramo de trabalho.

$ git commit --amend "new information is updated"
Atenção!

Nunca altere um commit que não seja mais o commit mais recente, porque outros membros da equipe ou outros ramos têm a versão baseada nesse commit. Depois de emendar, eles perdem o seu ponto de referência e é difícil de recuperar dele.