# Guia de Desenvolvimento: GitHub Desktop & Azure

1. Configuração Inicial (Clone)

Ao baixar o software, ir em File &gt; Options na aba Git, preencher com:

Name -&gt; Nome do desenvolvedor  
Email -&gt; O Lider do desenvolvimento deverá passar

**Lembrando que esse e-mail não é próprio, o mesmo é usado em comum entre os desenvolvedores.**

![image.png](https://dev.azure.com/SuperSoftDelphi/c75fb558-8a1a-40b6-9454-258f5ccb2559/_apis/git/repositories/4e544323-d992-4c20-bbd5-d765d91b1c08/Items?path=/.attachments/image-6b167899-49cf-45b3-b37f-6a4641fb99ff.png&download=false&resolveLfs=true&%24format=octetStream&api-version=5.0-preview.1&sanitize=true&versionDescriptor.version=wikiMaster)

---

Ao baixar o projeto pela primeira vez, siga estes passos para manter a estrutura de pastas padronizada:

1. No **GitHub Desktop**, vá em `File` &gt; `Clone Repository`.
2. Selecione a aba **URL**.
3. **URL do Repositório:** &gt; `https://SuperSoftDelphi@dev.azure.com/SuperSoftDelphi/SistemaERPFISCO/_git/SistemaERPFISCO`
4. **Local Path (Atenção):** O GitHub Desktop tentará sugerir o nome `SistemaERPFISCO`.
    
    
    - **Obrigatório:** Altere o final do caminho para que a pasta se chame **`Codigo Fonte`**.
    - *Exemplo:* `C:\Codigo Fonte`

---

2. Fluxo de Branches

---

Trabalhamos com uma branch principal (`main`) e **branches de versão** para cada Sprint.

### Iniciando uma Tarefa (Caso)

1. Certifique-se de que a **Current Branch** selecionada é a branch da versão atual (ex: `Branch 166`).
2. Clique em **Fetch Origin** para baixar as últimas atualizações.
3. Vá em **New Branch**.
4. Nomeie sua branch com o número do Desenvolvedor/Numero do Caso (ex: `vinicius.pereira_0053315`).
5. Garanta que a base da nova branch seja a branch da versão (ex: `166-Caso-0053542`).

---

3. Commits e Squash

---

Para manter o histórico do Azure DevOps limpo e fácil de ler:

- **Frequência:** Faça commits conforme avança no código.
- **Squash:** Antes de finalizar a tarefa, você deve consolidar seus commits.
    
    
    - No GitHub Desktop, vá na aba **History**.
    - Selecione seus commits da tarefa, clique com o botão direito e escolha **Squash commits**.
    - Isso transformará vários commits pequenos em um único commit robusto com a descrição da tarefa.

**Exemplo de Commit**

![image.png](https://dev.azure.com/SuperSoftDelphi/c75fb558-8a1a-40b6-9454-258f5ccb2559/_apis/git/repositories/4e544323-d992-4c20-bbd5-d765d91b1c08/Items?path=/.attachments/image-ca87b19d-062e-471f-9cd9-1831fad833ae.png&download=false&resolveLfs=true&%24format=octetStream&api-version=5.0-preview.1&sanitize=true&versionDescriptor.version=wikiMaster)

---

4. Atualização de Código (Rebase)

---

**NUNCA utilize "Merge"** para atualizar sua branch com a versão. Use sempre o **REBASE**.

O Rebase mantém o histórico linear, colocando seus commits no topo das últimas alterações da equipe.  
**Como fazer:**

1. Com sua branch de tarefa selecionada, vá no menu superior: `Branch` &gt; **Rebase Current Branch...**
2. Selecione a branch da versão (ex: `166-Caso-0053542`).
3. O GitHub Desktop processará a reescrita do histórico. Se houver conflitos, resolva-os no VS Code/Delphi e finalize o rebase no GitHub Desktop.

---

**OBS:**

Caso apareça uma mensagem de erro ao clonar, dar fetch.

Só clicar em Clone &gt; Generate Git Credencials e copiar o Password.

![Clipboard - 23 de fevereiro de 2026 às 15_05.png](https://dev.azure.com/SuperSoftDelphi/c75fb558-8a1a-40b6-9454-258f5ccb2559/_apis/git/repositories/4e544323-d992-4c20-bbd5-d765d91b1c08/Items?path=/.attachments/Clipboard%20-%2023%20de%20fevereiro%20de%202026%20%C3%A0s%2015_05-f6d2543e-3507-49fc-94d8-01cdb7190dd4.png&download=false&resolveLfs=true&%24format=octetStream&api-version=5.0-preview.1&sanitize=true&versionDescriptor.version=wikiMaster)

---

## Regras de Ouro (Resumo)

<table id="bkmrk-o-que-fazer-o-que-n%C3%83"><thead><tr><th>**O que fazer**</th><th>**O que NÃO fazer**</th></tr></thead><tbody><tr><td>Usar a pasta **Codigo Fonte**</td><td>Deixar o nome padrão `SistemaERPFISCO`</td></tr><tr><td>Fazer **Rebase** da versão</td><td>Dar "Merge" da versão na sua branch</td></tr><tr><td>Fazer **Squash** dos commits</td><td>Enviar dezenas de commits de "ajuste" no PR</td></tr><tr><td>Criar branch a partir da **Versão**</td><td>Criar branch a partir da `main` sem orientação</td></tr></tbody></table>