Fluxo básico

O repositório pode ser local e remoto e o controle de versão pode ser utilizado em ambos.

Pode-se iniciar o repositórioa local;


 $ mkdir new_repo
 $ cd new_repo
 $ git init

Será criado automaticamente a pasta oculta .git/ que conterá, além das configurações, a história do repositorio.

Além disso, voce pode criar o repositório diretamente de nos gerenciadores como GitHub ou BitBucket, por exemplo.

Trabalhando no repositório


Fonte da imagem

Bem, aqui vamos trabalhar no nosso repositório que pode ser algum que foi clonado ou criado por você, como mostrado acima.

Para clonar um repositório é muito simples, basta digitar no terminal;


 $ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY  

E automaticamente os arquivos de criação serão baixados no computador local. Esteja ciente de qual protocolo está usando para baixar/clonar o repositório. Caso o protocolo seja Https terá problema de conflito se você configurou por ssh. Caso aconteça algum problema esta pode ser uma solução.

Superado essa etapa, e após ter trabalhado em nosso código, o log do git vai avisar que tem arquivos não rastreados ou modificados. Para ver o log faça;

 $ git status


On branch main
Your branch is up to date with 'origin/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	teste

nothing added to commit but untracked files present (use "git add" to track)

Acima vemos que o arquivo teste não está sendo rastreado pelo versionamento. Vamos adicioná-lo;

 $ git add teste
 $ git status
On branch brnfra-readme-team
Your branch is up to date with 'origin/brnfra-readme-team'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   teste

Agora, se compararmos com a figura acima estamos na “staging area”, possívelmente os testes não passarão, ou não deseja que o arquivo seja rastreado pelo versionamento, e nosso arquivo de teste tera que ser modificado novamente voltando ao status não rastreado, fazemos como sugerido pelo git;

 $ git restore --staged teste

Caso esteja tudo OK, podemos seguir e vincular de vez nosso arquivo ao repositório, fazemos após adicioná-lo;

 $ git commit -m "comentário sobre as modificações"

Um artigo sobre boas práticas em commits (A art of the Commit).

Após o commit temos a opção de subir arquivos para o repositório remoto ou trazer as mudanças recentes para esse commit.
Para subir o código fazemos;

 $ git push

ou

 $ git push origin [your_branch]

Para encerrar esse tópico inicial deixo a sugestão de principiante de sempre fazer ;

 $ git pull

Antes de iniciar os trabalhos, pois diminuem chances de inconsistências no seu repositório de trabalho, e principalmente, se há um trabalho colaborativo. Lembrando que git pull é equivalente a fetch + merge em seu repositório de trabalho.

E repete-se esse ciclo de trabalho(na sua forma mais trivial) git status -> git pull -> git add -> git commit -> git push