Entendendo os Estágios do GIT

Apesar de o GIT fazer parte na maioria dos projetos do mundo, percebo que alguns conceitos não são tão comuns a certas pessoas e, as vezes, pra mim também.
Por muito tempo, eu sinceramente não entendia como as coisas funcionavam, de fato, no GIT. Utilizava certos comandos, mas não entendia o que realmente estava acontecendo.
Portanto, com este artigo, espero mostrar alguns conceitos que me ajudaram a entender melhor o GIT e dicas que eu aprendi. Tenho a intenção de ser breve e não aprofundar muito o tema.
Introdução

O GIT é um sistema de controle de versão mais popular que temos. Ele é usado, principalmente, para gerenciamento de código no desenvolvimento de software.
Ele foi criado, inicialmente por Linus Torvalds para o desenvolvimento do Kernel do Linux.
Não custa nada lembrar, mas o GIT não é o Github. O GIT é sistema de controle de versão e o Github é um serviço de hospedagem de repositórios GIT. Tá ok?
Entendendo os Estágios

working directory (diretório de trabalho)
Remember that each file in your working directory can be in one of two states: tracked or untracked.
2.2 Git Basics — Recording Changes to the Repository
Todos os arquivos que estão no diretório de trabalho, eles podem ter dois estado: tracked
e untracked
. Guarde essa informação.
Todos os arquivos que foram adicionados, modificados e excluídos, ficarão nesse estágio. Resumindo, todos os arquivos que você está trabalhando no momento estão aqui.
Executando o comando git status
, você deverá ver algo parecido, caso haja alguma adição, modificação ou exclusão de arquivos

Pela imagem você pode ver que, neste exemplo, os arquivos que foram alterados, foram marcado como modified. Tente adicionar e excluir arquivos dentro do repositório e execute o comando git status
para ver o resultado.
preparação (staging area)
Nesta área, você já deve ter executado o comando git add nome-do-arquivo
. O GIT já está rastreando o seu arquivo e, também foi elegido para ser comitado. Caso tenha interesse em eleger todos os arquivos do diretório de trabalho, digite o comando git add .
.
Se você digitar o comando git status
, deverá ver algo parecido com isso

repositório (repository)
Essa área é onde todos os seus arquivos confirmados ou comitados estão. Para comitar os arquivos que estão na staging area, você executa o comando
1 |
git commit -m "Frase explicativa e sucinta do que está comitando" |
Após fazer o commit, sua staging area ficará vazia

Conclusão
Enfim, espero que eu tenha sido claro sobre o assunto e espero que tenha seja útil daqui pra frente. Acho que até aqui, você deve ter percebido que o GIT é um mundo. Existem muitos outros conceitos e técnicas ainda para aprender.
Sugiro você ler este artigo que eu também fiz. Acredito que irá ser muito útil!
Deploy utilizando git bare