O MQL5 Algo Forge é um sistema de controle de versão e armazenamento baseado em Git, integrado ao MetaEditor. Ele funciona principalmente com a pasta MQL5, que contém todos os algoritmos, e com a pasta especial Shared Projects, onde ficam armazenados os projetos públicos.
O Git é um sistema de controle de versão que mantém o histórico das alterações feitas nos arquivos. Ele ajuda a evitar a perda de alterações importantes, permite retornar facilmente a uma versão anterior, desenvolver em branches separadas e integrar as contribuições de vários desenvolvedores em um único projeto. Mais informações sobre os fundamentos do Git estão disponíveis na documentação oficial.
Um commit registra o estado dos arquivos em um determinado momento. Cada commit possui um identificador exclusivo e uma mensagem que descreve as alterações realizadas. O histórico do projeto é composto por commits, branches e relações entre eles.
Você pode consultar quando as alterações foram feitas, quem as realizou, quais arquivos foram modificados e o que foi incluído em cada commit. Também é possível comparar versões dos arquivos, restaurar estados anteriores, alternar entre branches e, quando necessário, desfazer alterações específicas.
Ao desenvolver um projeto compartilhado, é recomendável obter regularmente as alterações do repositório remoto. Isso permite que o Git faça automaticamente o merge das alterações que não entram em conflito com a sua cópia local. No entanto, se dois usuários modificarem a mesma linha de código ou fizerem alterações incompatíveis entre si, poderá ocorrer um conflito. Nesse caso, o conflito deverá ser resolvido antes de criar um novo commit ou enviar as alterações ao repositório remoto.
Fluxo principal de uso:
Antes de começar, é necessário fazer login no MetaEditor com sua conta MQL5.community. Você pode começar a usar o Git no diretório selecionado das seguintes formas:
O Git é uma ferramenta de linha de comando, mas o MetaEditor oferece uma interface gráfica prática para executar as principais operações. Os comandos Git podem ser acessados em vários locais:
1. Clique com o botão direito do mouse em um arquivo ou uma pasta na janela Navegador.

2. Clique com o botão direito do mouse na guia de um arquivo aberto.

3. Clique com o botão direito do mouse na área do editor de código.

4. No menu superior, selecione Git.

Esses comandos executam operações do Git e interagem com o MQL5 Algo Forge.
Para adicionar ao repositório MQL5 um arquivo ou uma pasta armazenados localmente, clique com o botão direito do mouse sobre o item e selecione "Adicionar arquivo/pasta ao Git". Será aberta uma janela com a lista dos arquivos que serão adicionados.

Selecione os arquivos desejados e clique em "OK". O MetaEditor os adicionará a um novo commit e enviará imediatamente esse commit ao repositório remoto.
Os arquivos adicionados e rastreados são identificados pelo ícone especial
.

Uma branch representa uma linha de desenvolvimento independente na qual você pode implementar novas funcionalidades ou corrigir erros com segurança, sem afetar a versão estável do projeto. Depois de concluir o desenvolvimento e os testes, as alterações podem ser incorporadas à branch principal.
Clique com o botão direito do mouse em um arquivo ou uma pasta, selecione "Branch do Git" e depois "Nova". Na janela exibida, informe o nome da branch e clique em "OK".

Depois disso, você poderá alternar para a nova branch e continuar o desenvolvimento nela.
Alternar entre branches permite passar rapidamente de uma versão do projeto para outra. Nesse processo, os arquivos locais são atualizados automaticamente para corresponder à branch selecionada.
Clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Branch do Git". Na lista de branches, escolha a branch desejada.
Os arquivos e pastas modificados são identificados pelo ícone especial
.
![]()
Antes de criar um commit, você pode visualizar as alterações feitas no arquivo. Para isso, clique com o botão direito do mouse sobre ele e selecione "Ver diferenças no Git".
Para enviar as alterações, clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Enviar alterações para o Git".
Na janela de criação do commit, você pode selecionar os arquivos que serão incluídos e adicionar um comentário. Comentários detalhados facilitam a análise posterior do histórico de alterações do projeto.

Clique em "OK". O MetaEditor criará o commit e o enviará ao repositório remoto.
Depois que o envio e o commit forem concluídos com sucesso, os arquivos e pastas correspondentes serão identificados pelo ícone especial
.
Quando várias pessoas trabalham no mesmo projeto, outra pessoa pode fazer alterações e enviá-las antes de você. O mesmo pode ocorrer se você fizer alterações em um computador e continuar o desenvolvimento em outro. Obter as alterações do repositório remoto permite atualizar a cópia local do projeto e ajuda a evitar conflitos.
Para obter todas as alterações disponíveis, clique com o botão direito do mouse na pasta e selecione "Obter atualizações do Git". A guia "Diário" exibirá informações sobre a operação realizada, incluindo detalhes das alterações obtidas.

Depois de editar o código ou excluir arquivos, você pode restaurar facilmente o projeto ao estado anterior a essas alterações.
Para descartar as alterações de um arquivo ou uma pasta, clique com o botão direito do mouse sobre o item e selecione "Descartar alterações no Git".
Se vários arquivos do projeto tiverem sido modificados, será aberta uma janela de seleção. Escolha os arquivos cujas alterações devem ser descartadas e clique em "OK".

Se as alterações que você deseja desfazer já tiverem sido registradas em um commit, use a reversão de commit.
Se um determinado commit causar problemas no funcionamento do programa ou se suas alterações não forem mais necessárias, elas poderão ser revertidas.
Clique com o botão direito do mouse no arquivo ou na pasta desejada e selecione "Ver histórico do Git" para abrir o histórico de commits. Em seguida, clique com o botão direito do mouse no commit que deseja reverter e selecione "Reverter para a revisão".

O MetaEditor criará um novo commit que desfaz as alterações do commit selecionado, preservando todo o histórico do projeto.
Para excluir um arquivo ou uma pasta, clique com o botão direito do mouse sobre o item e selecione "Excluir". O arquivo ou a pasta será removido da cópia local do projeto.
Para removê-los também do repositório remoto, atualize o projeto e depois crie um commit que registre as exclusões. Como os demais commits, ele será enviado automaticamente pelo MetaEditor ao repositório remoto.
Para excluir um projeto da pasta Shared Projects, clique com o botão direito do mouse sobre ele e selecione "Excluir projeto público".
A cópia local do projeto será excluída. Se você for o autor do projeto, a cópia correspondente também será excluída do repositório remoto.
O histórico de commits de um arquivo ou uma pasta contém comentários, nomes dos autores e datas. Ele permite acompanhar todas as alterações feitas no arquivo ou na pasta ao longo do desenvolvimento do projeto.
Clique com o botão direito do mouse em um arquivo ou uma pasta e selecione "Ver histórico do Git".
Na parte superior da janela, são exibidas as seguintes colunas:

Selecione um commit na lista. Na parte inferior da janela serão exibidos os arquivos modificados, adicionados ou excluídos nesse commit.

Os ícones indicam o tipo de alteração:
Clique com o botão direito do mouse em um commit para acessar os seguintes comandos: