Git Tutorial - Git Workflow
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 comandogit 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 -m "new information is updated"
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook