Controles de Integracao Git NEW

O HarbourBuilder inclui integracao Git completa — 10 componentes e suporte abrangente no IDE para controle de versao. Sem ferramentas externas necessarias; gerencie seus repositorios diretamente do IDE.

Controle de Codigo Fonte Integrado

O HarbourBuilder envolve a CLI do git via CreateProcess com captura de stdout, proporcionando uma experiencia de Source Control no estilo VS Code dentro do IDE.

Componentes Git

ComponenteCT IDDescricao
TGitRepo121Inicializacao de repositorio, clonagem e status
TGitCommit122Commit de alteracoes com mensagens e selecao de arquivos
TGitBranch123Criacao, troca e listagem de branches
TGitLog124Visualizar historico de commits com autor, data e mensagem
TGitDiff125Visualizar diferencas e alteracoes em arquivos
TGitRemote126Gerenciar repositorios remotos (adicionar, remover, listar)
TGitStash127Guardar e restaurar alteracoes do diretorio de trabalho
TGitTag128Criar, listar e excluir tags
TGitBlame129Informacao de autor linha por linha (annotate)
TGitMerge130Mesclar branches e resolver conflitos

Integracao Git no IDE

Painel de Controle de Codigo Fonte

Acesse via menu Git > Status. O painel mostra:

O painel usa um estilo escuro que corresponde a visao Source Control do VS Code.

Item de MenuAcao
InitInicializar um novo repositorio Git
CloneClonar um repositorio remoto existente
StatusAbrir painel de Controle de Codigo Fonte
CommitCommit das alteracoes staged
PushEnviar commits para o remoto
PullBaixar atualizacoes do remoto
Branch > CreateCriar um novo branch
Branch > SwitchTrocar para outro branch (com dialogo de lista)
Branch > MergeMesclar um branch no atual
Stash > SaveGuardar alteracoes do diretorio de trabalho
Stash > PopRestaurar alteracoes guardadas
LogVisualizar historico de commits
DiffVisualizar diferencas entre arquivos
BlameVisualizar autoria linha por linha

Funcoes de Backend

11 funcoes de backend envolvem a CLI do git.exe via CreateProcess com captura de stdout:

FuncaoComando GitFormato de Retorno
GIT_Status()git status --porcelain{ { cStatus, cFile }, ... }
GIT_Log()git log --format=...{ { cHash, cAuthor, cDate, cMsg }, ... }
GIT_Diff()git diffString diff unificada
GIT_Blame()git blame{ { nLine, cHash, cAuthor, cText }, ... }
GIT_CurrentBranch()git branch --show-currentString do nome do branch
GIT_BranchList()git branch{ { cName, lCurrent }, ... }
GIT_Exec()Qualquer comando gitString stdout capturada
GIT_IsRepo()git rev-parseLogico (.T./.F.)
GIT_RemoteList()git remote -v{ { cName, cURL }, ... }
GIT_StashList()git stash list{ { cStash, cMsg }, ... }

Exemplos de Codigo

Inicializar um Repositorio

local oRepo

oRepo := TGitRepo:New()
if ! GIT_IsRepo( "C:\MeuProjeto" )
   GIT_Exec( "git init C:\MeuProjeto" )
   MsgInfo( "Repositorio inicializado" )
endif

Visualizar Status e Commit

local aStatus, cMsg

aStatus := GIT_Status()
for each aFile in aStatus
   ? aFile[1], aFile[2]  // Codigo de status e nome do arquivo
next

GIT_Exec( "git add ." )
GIT_Exec( "git commit -m \"Commit inicial\"" )

Operacoes com Branch

local aBranches

// Listar todos os branches
aBranches := GIT_BranchList()
for each aBranch in aBranches
   ? aBranch[1], if( aBranch[2], "* atual", "" )
next

// Criar e trocar para novo branch
GIT_Exec( "git checkout -b feature/nova-funcionalidade" )

Visualizar Log de Commits

local aLog

aLog := GIT_Log( 20 )  // Ultimos 20 commits
for each aCommit in aLog
   ? aCommit[1]  // Hash
   ? aCommit[2]  // Autor
   ? aCommit[3]  // Data
   ? aCommit[4]  // Mensagem
next

Blame em um Arquivo

local aBlame

aBlame := GIT_Blame( "source/main.prg" )
for each aLine in aBlame
   ? "Linha", aLine[1], "por", aLine[3], ":", aLine[4]
next

Troca de Branches

Ao trocar de branches via Git > Branch > Switch, um dialogo de lista mostra todos os branches disponiveis. Selecione o branch alvo e clique em OK. O IDE ira:

  1. Verificar se ha alteracoes nao commitadas
  2. Pedir para fazer stash se houver alteracoes
  3. Executar git checkout <branch>
  4. Recarregar o projeto se os arquivos mudaram
Dependencia da CLI Git

A integracao Git do HarbourBuilder requer que o git esteja instalado e no PATH do sistema. Baixe em git-scm.com.

Fluxos de Trabalho Git Comuns

Configuracao Inicial

// 1. Inicializar repositorio
GIT_Exec( "git init" )

// 2. Adicionar remoto
GIT_Exec( "git remote add origin https://github.com/usuario/repo.git" )

// 3. Adicionar todos os arquivos
GIT_Exec( "git add ." )

// 4. Commit
GIT_Exec( "git commit -m \"Commit inicial\"" )

// 5. Push para o remoto
GIT_Exec( "git push -u origin master" )

Fluxo de Trabalho Diario

// 1. Baixar ultimas alteracoes
GIT_Exec( "git pull" )

// 2. Fazer alteracoes no IDE...

// 3. Verificar status
aStatus := GIT_Status()

// 4. Stage e commit
GIT_Exec( "git add ." )
GIT_Exec( "git commit -m \"Adicionar funcionalidade X\"" )

// 5. Push para o remoto
GIT_Exec( "git push" )

Nesta Página

Primeiros Passos Paleta de Componentes Recursos do IDE Tutoriais Referencia Plataformas Componentes Git Integracao Git no IDE Painel de Controle de Codigo Fonte Menu Git (17 Itens) Funcoes de Backend Exemplos de Codigo Inicializar um Repositorio Visualizar Status e Commit Operacoes com Branch Visualizar Log de Commits Blame em um Arquivo Troca de Branches Fluxos de Trabalho Git Comuns Configuracao Inicial Fluxo de Trabalho Diario