Obter o status do repositório do Git

Concluído

Para obter o status do repositório local do Git, você pode usar o comando Status. Isso mostra quais arquivos estão desacompanhados, quais são adicionados ou removidos e precisam ser confirmados.

git status

Este comando pode dar um resultado semelhante ao seguinte:

On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    BodyType.al

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

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

Este comando fornece os outros comandos que podem ser usados para adicionar ou remover arquivos. Se adicionarmos o arquivo Car.al à área de preparo, você obterá o resultado a seguir com o comando status.

On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   Car.al

Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    BodyType.al

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

Na visão geral do status, você pode ver uma lista de arquivos na área de preparo e no diretório de trabalho. Para compactar o resultado, você pode usar a opção status-s. Ele exibirá os arquivos em uma lista. A primeira coluna indicará o status do arquivo na área de preparo, e a segunda coluna indicará o status do arquivo no diretório de trabalho.

No próximo exemplo, você pode ver que o arquivo BodyType.al é excluído na área de trabalho (a segunda coluna), mas que ainda não foi preparado (não há status na primeira coluna). O Car.al é adicionado à área de preparo e tem a letra de status A. Os outros dois arquivos são ainda não rastreados, portanto, não há status dos arquivos no diretório de trabalho ou na área de preparo.

 D BodyType.al
A  Car.al
?? CarCard.al
?? CarList.al

Para obter uma lista das confirmações executadas no diretório Git, você pode usar o comando log. O comando log também pode aceitar várias opções que apresentarão mais informações sobre cada confirmação.

git log

O comando log básico mostra uma lista de confirmações com as informações de autor e data e a mensagem de confirmação.

commit e50111d6d92f0107e97924e5d9ee3c785a10e194 (HEAD -> master)
Author: Your Name <yourname@xyz.com>
Date:   Tue May 12 15:40:29 2020 +0200

    Initial Commit

Se você usar a opção -p, ela também incluirá o conteúdo e a diferença no conteúdo da confirmação anterior.

commit e50111d6d92f0107e97924e5d9ee3c785a10e194 (HEAD -> master)
Author: Your Name <yourname@xyz.com>
Date:   Tue May 12 15:40:29 2020 +0200

    Initial Commit

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..8e38d70
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+.alpackages/*.app
+*.app
+.vscode/launch.json
+.vscode/rad.json
diff --git a/BodyType.al b/BodyType.al
new file mode 100644
index 0000000..7fce165
--- /dev/null
+++ b/BodyType.al
@@ -0,0 +1,29 @@
+enum 50100 "Body Type"
+{
+    Extensible = true;
...

Outras opções de log interessantes são --stat. Ela mostra quantas linhas por arquivo foram modificadas na confirmação.

git log --stat

commit e50111d6d92f0107e97924e5d9ee3c785a10e194 (HEAD -> master)
Author: Your Name <yourname@xyz.com>
Date:   Tue May 12 15:40:29 2020 +0200

    Initial Commit

 .gitignore  |  4 ++++
 BodyType.al | 29 +++++++++++++++++++++++++++++
 app.json    | 39 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 72 insertions(+)

A log --Graph exibe uma visão geral gráfica das diferentes confirmações, incluindo diferentes ramificações e mesclagens. Com a opção --pretty, você pode facilitar a leitura da saída.

Há algumas opções para pretty: oneline, short, full, fuller.

git log \--pretty=oneline \--graph

No o Visual Studio Code, o status é exibido imediatamente na janela SCM. As letras A, D, U, M e assim por diante indicam o status de cada arquivo.