타일형 창, 워크스페이스, 세션 유지 기능과 각 창에서 실행 중인 코딩 에이전트를 위한 Inbox를 갖춘 Go 기반 터미널 멀티플렉서 겸 창 관리자입니다.
feder-cr/git-ai
compare-and-swap 방식으로 변경 사항을 반영하고 AI로 충돌을 해결하는, 서버 중심 에이전트 지향 Git 설계를 재구현한 Go 서버 및 CLI입니다.
- 스타
- 1,280
- 포크
- 124
- 열린 이슈
- 2
- 마지막 커밋
- 9시간 전
어떤 프로젝트인가요?
gitai는 코딩 에이전트를 위한 서버 중심 버전 관리 설계를 독립적으로 구현한 오픈소스 프로젝트입니다. 각 클라이언트가 전체 저장소를 복제한 뒤 오랜 작업 세션이 끝나면 푸시하는 대신, 클라이언트는 온라인 상태를 유지하며 필요한 객체와 sparse 경로만 가져오고 blame, 경로 이력, 코드 검색 같은 이력 관련 질문을 서버에 요청합니다. 저장소 상태는 내부적으로 일반 Git 저장소를 기반으로 관리됩니다.
동시 쓰기가 발생하면 변경 사항을 현재 브랜치의 최신 커밋에 rebase한 뒤 merge queue가 아닌 compare-and-swap 방식으로 반영하며, 한 브랜치에 동시에 반영되는 변경 사항은 하나의 reference 업데이트로 묶습니다. 충돌은 플러그형 resolver(LLM 제공자, 결정론적 도구 또는 resolver 없음)에 맡길 수 있습니다. 모델이 제안한 해결 방법은 설정된 검증 명령이 정확히 적용될 결과 트리에서 통과한 경우에만 반영됩니다.
이 프로젝트에는 클라이언트가 조회하거나 실시간으로 구독할 수 있는 changeset 로그, 에이전트별 토큰과 브랜치 정책, 의미 기반 리뷰 규칙도 포함됩니다. 또한 메타데이터 저장소로 SQLite 또는 PostgreSQL을, 객체 저장소로 파일 시스템, S3, GCS 또는 Azure를 사용할 수 있는 스토리지 코어를 제공합니다. Go 기반 서버와 graft CLI는 make로 빌드하며 Linux 또는 macOS가 필요합니다.
핵심 기능
- 01클라이언트는 전체 저장소를 복제하는 대신 단일 객체와 sparse 트리만 가져옵니다.
- 02blame, 경로 이력, 조상 관계 및 코드 검색을 서버에서 실행하고 커밋별로 캐시합니다.
- 03변경 사항을 브랜치 최신 커밋에 rebase하고 compare-and-swap 방식으로 반영하며, 동시에 반영되는 변경 사항은 하나로 묶습니다.
- 04플러그형 resolver로 충돌을 해결할 수 있으며, 모델의 제안은 설정된 명령으로 검증합니다.
- 05메타데이터는 SQLite 또는 PostgreSQL에 저장하고, 팩은 파일 시스템, S3, GCS 또는 Azure 객체 저장소에 저장합니다.
활용 사례
- 여러 코딩 에이전트가 같은 브랜치에 동시에 커밋하는 환경 운영.
- 에이전트에 sparse checkout이 필요한 자체 관리형 Git 서비스 호스팅.
- 검증 절차를 거치는 AI 지원 병합 충돌 해결 실험.
- 어떤 주체가 어떤 reference를 변경했는지 감사할 수 있는 changeset 로그 추가.
빠른 시작
- 1
저장소를 클론합니다
git clone https://github.com/feder-cr/git-ai.git - 2
프로젝트 디렉터리로 이동합니다
cd git-ai - 3
서버, CLI 및 도구를 빌드합니다
make build - 4
퀵스타트 예제를 실행합니다. 임시 디렉터리에서 서버, 캐시 데몬, 에이전트 2개, land를 시작합니다
examples/graft/quickstart.sh
사용 전 알아둘 점
- Linux와 macOS만 지원합니다.
- 번들된 Git을 컴파일하므로 빌드에 Go 1.26, C 툴체인, Meson 및 Ninja가 필요합니다.
- 버전은 0.3.0이며, 1.0 이전에 인터페이스가 변경될 수 있습니다.
- 스토리지 코어의 pack 가비지 컬렉션 등 알려진 미구현 기능은 아직 구현되지 않았습니다.
토픽
자주 묻는 질문
- git-ai은(는) 무엇인가요?
- compare-and-swap 방식으로 변경 사항을 반영하고 AI로 충돌을 해결하는, 서버 중심 에이전트 지향 Git 설계를 재구현한 Go 서버 및 CLI입니다. gitai는 코딩 에이전트를 위한 서버 중심 버전 관리 설계를 독립적으로 구현한 오픈소스 프로젝트입니다. 각 클라이언트가 전체 저장소를 복제한 뒤 오랜 작업 세션이 끝나면 푸시하는 대신, 클라이언트는 온라인 상태를 유지하며 필요한 객체와 sparse 경로만 가져오고 blame, 경로 이력, 코드 검색 같은 이력 관련 질문을 서버에 요청합니다. 저장소 상태는 내부적으로 일반 Git 저장소를 기반으로 관리됩니다.
- git-ai은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- git-ai은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- git-ai은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. git-ai의 마지막 커밋은 2026년 10월 21일입니다.
- git-ai은(는) 어디에 사용할 수 있나요?
- 여러 코딩 에이전트가 같은 브랜치에 동시에 커밋하는 환경 운영. 에이전트에 sparse checkout이 필요한 자체 관리형 Git 서비스 호스팅. 검증 절차를 거치는 AI 지원 병합 충돌 해결 실험. 어떤 주체가 어떤 reference를 변경했는지 감사할 수 있는 changeset 로그 추가.
- git-ai는 어떻게 설치하나요?
- 저장소를 클론합니다: git clone https://github.com/feder-cr/git-ai.git 프로젝트 디렉터리로 이동합니다: cd git-ai 서버, CLI 및 도구를 빌드합니다: make build 퀵스타트 예제를 실행합니다. 임시 디렉터리에서 서버, 캐시 데몬, 에이전트 2개, land를 시작합니다: examples/graft/quickstart.sh
- git-ai은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/feder-cr/git-ai
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Go로 작성된 셀프 호스팅 올인원 소프트웨어 개발 서비스로, Git 호스팅, 코드 리뷰, 이슈, 패키지 및 CI/CD를 제공합니다.
Git처럼 테이블을 fork, clone, branch, merge, push, pull할 수 있고 MySQL처럼 연결되는 SQL 데이터베이스입니다.
AI 에이전트와 팀을 위한 Markdown 파일시스템으로, 전체 텍스트·벡터 검색, Git 버전 관리, 웹 UI를 단일 Go 바이너리로 제공합니다.
Go로 작성된 간편한 셀프 호스팅 Git 서비스로, 이슈·풀 리퀘스트·위키·웹훅을 제공하며 단일 바이너리로 배포됩니다.