AI 네이티브, 키보드 우선 Git 데스크톱 클라이언트
요약
GitDesktop은 Tauri 2와 React 19로 구축된 오픈 소스 Git 클라이언트로, 기존의 접근성 좋은 모델에 더해 스테이징, diffs, 브랜치 관리 등 고급 기능을 제공합니다. 특히 PR 라이프사이클 전체를 앱 내에서 오프라인으로 처리할 수 있으며, Claude Code, Codex 등의 AI 코딩 에이전트를 통합하여 격리된 환경에서 작업하고 리뷰하는 기능이 핵심입니다.
핵심 포인트
- PR 라이프사이클(코드 리뷰/CI)을 브라우저 없이 앱 내에서 완벽 지원
- Claude Code, Codex 등 AI 에이전트가 격리된 환경에서 코딩 및 검토 수행 가능
- GitHub, GitLab, Bitbucket의 이슈와 PR을 단일 받은 편지함으로 통합 관리
- 인터랙티브 리베이스, 병합 예측 등 심층적인 Git 툴링 제공
- 키보드 우선(Keyboard-first) 설계로 개발 생산성 극대화
AI 네이티브, 키보드 우선 Git 데스크톱 클라이언트
GitDesktop은 Windows, macOS, Linux용 무료 오픈 소스 (Apache-2.0) Git 클라이언트로, Tauri 2와 React 19로 구축되었습니다. 이 클라이언트는 GitHub Desktop의 접근하기 쉬운 모델을 유지하면서 더 나아갑니다: 스테이징(staging), diffs, 브랜치(branches), 그리고 모든 원격 저장소에 대한 히스토리(history)를 제공하며, GitHub, GitLab, Bitbucket에서 전체 풀 리퀘스트 루프(pull-request loop) (코드 리뷰 및 CI)를 지원합니다. 또한 GitHub와 GitLab에서는 인앱 이슈(issues) 기능을, Bitbucket에서는 Jira를 통해 이슈 관리를 할 수 있습니다. 여기에는 GitHub Desktop이 전혀 하지 않는 오프라인
PR 라이프사이클 전체를 앱 내에서: 브라우저 없이 리뷰, 댓글 작성, 승인 및 병합할 수 있으며, 어떤 두 브랜치 간의 오프라인 로컬 PR도 생성 가능하며 클릭 한 번으로 실제 PR로 전환됩니다.세 가지 포지션, 최고 수준의 기능: GitHub, GitLab, Bitbucket Cloud를 지원하며, 각 플랫폼에서 PR/MR, CI, 프로젝트 설정 등을 동일한 패널에서 관리할 수 있습니다. GitHub와 GitLab에서는 앱 내 이슈 관리가 가능하며, Bitbucket에서는 Jira를 통해 접근합니다.저의 작업, 레포 및 포지션 전반에 걸친 단일 받은 편지함: GitHub, GitLab, Bitbucket의 열려 있는 풀 리퀘스트(pull requests), 머지 리퀘스트(merge requests), 리뷰 요청, 이슈들이 모여 있으며, Enter 키를 누르면 작업이 존재하는 곳에서 바로 해당 항목을 열 수 있습니다.GitHub Actions 코크핏: 실행(runs), 잡(jobs), 단계(steps), 재실행/취소/디스패치(run 또는 행 우클릭 메뉴에서 가능), 실패한 단계 로그, 그리고 AI 디버깅 기능까지 제공합니다.가드레일이 적용된 코딩 에이전트: Claude Code, Codex, Copilot, 또는 opencode에 작업을 위임하여 격리된 작업 트리(worktrees)나 컨테이너 내에서 실행하고, 모든 편집 내용을 모니터링하며, 결과를 브랜치나 로컬 PR로 유지할 수 있습니다.지속적이거나 반복되지 않는 AI 리뷰: 이전 라운드를 기억하고 다른 리뷰어의 발견 사항을 통합하는 반복적이고 선택적으로 에이전트가 수행하는 보안 감사 및 검토 기능을 제공합니다.양방향 MCP(Multi-Cloud Platform): 자체 서버를 에이전트 세션으로 가져오거나, 기본적으로 읽기 전용인 모든 레포지토리를 Claude Desktop, Cursor 또는 Claude Code에 노출할 수 있습니다.심층 Git 툴링: 인터랙티브 리베이스(interactive rebase), 병합 예측(merge prediction), 손실된 스태시 복구(lost-stash recovery), 작업 트리 관리자(worktree manager), 대량 브랜치 정리 기능 등을 제공합니다.Markdown, diff에서 미리보기: Raw/Preview 토글을 사용하여 앱이 로컬 파일에 접근할 수 있는 모든 곳에서 마크다운 및 MDX 변경 사항을 렌더링합니다.키보드 우선, 프라이버시 우선: 재지정 가능한 단축키, 명령어 팔레트(command palette), OS 키체인 내의 키 저장소, 그리고 모든 AI 인터페이스를 숨길 수 있는 스위치 하나로 구성되어 있습니다. \n\nThe 전체 카탈로그가 영역별로 제공됩니다. 가장 깊은 수준의 제공자 섹션들은 접혀 있으며, 원하는 상세 내용을 펼쳐볼 수 있습니다.\n\n클론(Clone), 로컬 추가(add local), 생성(README / .gitignore / license 스캐폴딩 포함), GitHub, GitLab 또는 Bitbucket에 게시(publish)하고 포크(fork)할 수 있습니다.
게시 시 소유자 지정: 로컬 리포지토리를 GitHub에 게시하려면 먼저 **소유자(Owner)**를 선택해야 합니다(사용자 계정 또는 조직 중 하나). Bitbucket도 이와 유사하게 **작업 공간(workspace)**을 지정합니다. 리포지토리 전환기(Repo switcher): 소유자별로 그룹화된 모든 리포지토리를 보여주며, 최근 항목 섹션과 필터 기능을 제공합니다. 각 행은 신원 배지(forge 로고, 인식되지 않은 원격 저장소용 클라우드, 로컬 전용 폴더, 그리고 private/internal/public에 대한 잠금/건물/글로브 가시성 아이콘)와 별칭, 휴지통 안전 제거 기능을 포함합니다. 메뉴에서 별표를 추가하거나 제거할 수 있습니다. 이동된 리포지토리 찾기: 리포지토리 폴더가 디스크 상에서 이동했을 경우, "git 저장소가 아닙니다(no longer a git repository)"라는 알림 창에서 새 위치를 가리키도록 GitDesktop에 지정합니다. 이 항목은 별칭과 배지를 유지하며, 로컬 PR(Pull Request), 이슈, 검토 기록 및 자동화 기능도 함께 따라갑니다. macOS 메뉴 막대: 파일에는 **새로 만들기/열기/저장소 복제…**와 지난 10개 리포지토리 목록인 **최근 항목 열기(Open Recent)**가 포함됩니다. **설정…**은 GitDesktop 메뉴에 위치합니다. 이 항목들은 어떤 화면에서든 작동합니다. Git이 추적하거나 무시하는 파일 관리(대기 중 변경 사항 외): 실수로 커밋된 파일을 추적 해제할 수 있으며(디스크에는 남아 있음), 규칙을 담당하는 모든 무시된 파일을 표시하고 해당 규칙을 강제로 추가하거나 제거할 수 있습니다. AI 기능이 활성화되면, AI 제외(AI excluded) 탭에서 AI 무시 패턴에 대해서도 동일하게 처리합니다. 즉, 숨겨진 모든 파일과 그 파일을 숨긴 규칙, 그리고 리포지토리 파일 또는 전역 설정에서 해당 규칙을 제거할 수 있습니다.
GitHub 리포지토리 설정 (관리자): 규칙 세트(rulesets), 보안 토글, 시크릿(secrets), 웹훅(webhooks), Pages, 위험 구역(danger zone)
설명 및 주제(AI 제안 포함), 병합 옵션 및 기본 커밋 메시지, 템플릿 및 포킹, 협업자 및 초대,
브랜치 규칙 세트(생성/편집, 가역적 활성화/비활성화), 코드 보안 및 분석 토글, Actions/Dependabot/Codespaces 시크릿 및 변수(리포지토리 및 환경 범위), 스폰서 버튼(.github/FUNDING.yml)
)), webhooks와 배달 기록(delivery history), GitHub Pages 설정, 위험 구역(danger zone) (이름 변경, 아카이브, 가시성 변경, 전송, 삭제), 그리고 GitHub가 브라우저에서만 유지하는 설정에 대한 깊은 링크를 포함합니다.
구문 강조 표시(syntax highlighting), 접을 수 있는 주변 컨텍스트(collapsible surrounding context), 이미지 차이점 비교(image diffing)가 적용된 통합 또는 분리된 diff. 경로별 또는 카테고리별로 변경 목록을 필터링하고, 파일을 열지 않고도 파일의 +추가 -삭제 라인 수를 읽을 수 있습니다. 이 목록을 평평하게 표시하거나 압축된 디렉토리 트리 형태로 보여줍니다: 접을 수 있는 폴더, 단일 자식 폴더 체인이 한 줄로 병합되고, 화살표 키를 사용하여 이동하고 접을 수 있습니다. 작업 트리의 diff는 전체 파일 보기이며, hunk 및 라인 수준의 스테이징(staging)과 폐기(discarding)가 가능합니다 (라인 번호를 가로질러 드래그하여 hunks를 자유롭게 걸치면 — 드래그는 추가되고 제거된 라인을 두 뷰에서 함께 가져오고, Shift는 한쪽에만 유지하며, Ctrl 또는 macOS의 Cmd는 선택에 추가합니다). 새롭지만 추적되지 않은(untracked) 파일의 일부만 커밋하거나 폐기할 수 있습니다. Ctrl/⌘ + Shift + Enter를 사용하여 버튼을 찾지 않고도 드래그로 만든 선택 항목을 스테이징하거나 언스테이징하고, 컨텍스트 메뉴에서 단일 파일 또는 다중 선택 항목을 스테이징/언스테이징하거나 폐기할 수 있습니다 (선택 항목의 스테이징 및 언스테이징은 명령 팔레트에도 존재합니다). 전체 추적되지 않은 파일을 폐기하면 재활용 휴지통으로 이동합니다. 제목과 본문으로 커밋하고, 기록에서 제안된 공동 작성자(co-authors)를 지정하며, 수정(amend), 취소(undo), 리셋(reset), 그리고 되돌리기(revert) 기능을 제공합니다.
Markdown 및 MDX 파일은 diff에 Raw/Preview 토글을 추가하여, 작업 트리에서 문서를 렌더링된 산문(제목, 표, 코드 블록)으로 읽고, 커밋 세부 정보, 스태시(stashes), 에이전트 세션의 작업 트리 변경 사항, 파일의 기록, 브랜치 비교, 그리고 PR의 커밋이 로컬에서 사용 가능할 때 풀 리퀘스트 파일들을 확인할 수 있습니다.
Switch(bring-changes/stash 프롬프트 포함), 생성, 이름 변경, 삭제 및 아카이브(삭제하지 않고 스위처에서 숨김). 각 스위처 행은 해당 브랜치의 업스트림 대비 푸시/풀 상태(↑는 푸시, ↓는 풀, never-published 및 upstream-deleted 브랜치에 대한 플러스 마커), 기본 브랜치 대비 +/− 차이점(기본 브랜치 이름으로 표시), 그리고 PR 배지를 보여줍니다.
브랜치 정리⭐: 오래된 브랜치를 아카이브하거나 삭제할 수 있는 검토 목록 — 기본 브랜치에 병합된 (직접 또는 forge 연결이 제공하는 경우 최근 풀 리퀘스트를 통해, 따라서 스쿼시 및 리베이스 병합도 계산됨) 브랜치 또는 지정된 기간 내 커밋이 없는 브랜치를 대상으로 합니다. 풀 리퀘스트 일치는 브랜치 이름으로 이루어지므로 해당 PR을 적용한 행에만 배지를 표시하며, 사전 확인은 여전히 사용자의 히스토리에서 가져옵니다: 기본 브랜치에 병합되었거나 그 기간 동안 유휴 상태였던 경우입니다. 대화 상자는 읽은 풀 리퀘스트만 이름을 지정하므로 그 문구가 목록 뒤의 확인 사항과 일치합니다.고급 병합 도구⭐: Git 2.38 이상에서는 커밋하기 전에 메모리에서 병합 결과를 예측합니다(fast-forward, 이미 최신 상태, 깨끗함, 또는 정확히 어떤 파일이 충돌할지). --no-ff와 명확하게 경고하는 자동 해결 전략(-X ours/theirs)을 사용하며, GitHub Desktop의 병합 대화 상자는 최신 상태, 깨끗함 또는 충돌한 파일 수를 보고하지만, --no-ff나 -X는 없습니다.
옵션. 이것은 로컬 예측입니다. 원격 PR의 충돌 상태는 forge 자체에서 오며, forge가 아무것도 게시하지 않는 경우에만 이 예측으로 폴백됩니다.기반 변경(Change base)⭐: 브랜치를 잘못된 기반에서 분기했을 때 다른 기반으로 리베이스하는 기능입니다. 이때 해당 브랜치 자신의 커밋들만 재연하며 (잘못된 기반은 그대로 남겨둡니다), 어떤 커밋들이 이동할지 미리 볼 수 있습니다.체크아웃 없이 원격 브랜치 작업(No-checkout and remote-branch ops): 브랜치를 체크아웃하지 않고 업데이트하는 기능입니다 (기본 브랜치나 자체 업스트림에서, 예: 병합된 PR 이후 기본 현재 상태로 가져오기). 또한 스위처의 Remote 섹션에서 원격 전용 브랜치를 바로 체크아웃하거나 삭제할 수 있습니다.스위칭 없이 푸시 또는 게시(Push or publish without switching): 스위처의 컨텍스트 메뉴에서, 추적하는 원격보다 앞서 있는 브랜치(자신의 원격일 뿐 origin만은 아님)를 푸시하거나, 아직 푸시되지 않은 브랜치를 선택할 수 있습니다. 여러 개가 있을 경우 어떤 원격을 사용할지 선택합니다. 이 기능은 해당 브랜치가 다른 워크트리에서 체크아웃되어 있는 경우에도 작동합니다.모든 기반에서 브랜치 시작(Start a branch from any base): 새 브랜치 다이얼로그의 기반으로 설정(Base it on) 선택기는 로컬 및 원격 브랜치의 검색 가능한 목록입니다. 원격 브랜치(예: origin/epic/big-feature)를 기반으로 설정할 수 있습니다.
)"은 원격 끝(remote tip)에서 시작하여 새 브랜치를 추적되지 않은 상태로 남기므로, 첫 번째 푸시를 통해 자체 이름으로 게시합니다.
작업 트리 관리자 (Worktree manager): 작업 트리를 생성하고, 전환하며, 이름을 바꾸고, 잠그고, 메인 체크아웃에 작업 트리의 브랜치를 승격시키거나 연결된 작업 트리를 제거할 수 있어, 스태싱(stashing) 없이 여러 브랜치에서 병렬 폴더로 작업할 수 있습니다. 각 행은 해당 작업 트리가 마지막으로 활성화된 시점을 보여주므로, 완료한 것을 쉽게 식별할 수 있습니다. 브랜치 전환기에는 메인 작업 공간으로 한 번의 클릭으로 이동하는 기능이 배치되어 있어, 다른 곳에서 체크아웃된 브랜치를 선택하면 해당 폴더가 즉시 열립니다. 해당 브랜치의 컨텍스트 메뉴에는 작업 트리 관련 동작들이 포함되며, Worktrees 행을 클릭하면 전체 관리자가 열립니다.
비교 (Compare): 세 점짜리 diff, 앞서/뒤처진 커밋(commits ahead/behind), 병합/리베이스(merge/rebase), PR로 이동하는 탭입니다. 각 앞서/뒤처진 커밋은 태그 칩을 보여주고 컨텍스트 메뉴를 포함합니다 — 체크아웃, 체리픽(cherry-pick), 브랜치 또는 태그 생성, SHA 복사, 그리고 해당 브랜치의 커밋에 대한 되돌리기(revert) 기능이 있습니다.
로컬 브랜치 보호 규칙 (Local branch-protection rules): 이름 지정, 병합 방법, PR 필수 여부, 강제 푸시 규칙 등을 포함하며, 커밋된 파일을 통해 공유하거나 GitHub에서 가져올 수 있습니다. 승격 브랜치 목록(promotion-branches list)은 해당 브랜치의 풀 리퀘스트를 승격으로 표시합니다: 이들의 PR은 기본 브랜치로부터의 업데이트 제공을 중단하고, 브랜치 메뉴는 기본 브랜치로부터의 한 번 클릭 업데이트를 보류하여 승격 흐름이 방향성을 유지하게 합니다.
풍부한 커밋 상세 정보, 커밋 작성자 아바타, 그리고 아직 푸시되지 않은 모든 커밋에 대한 한눈에 보이는 마커가 있는 페이지네이션 및 필터링 가능한 히스토리입니다. 파일별 히스토리와 라인 블레임(line blame)은 모든 파일 목록 (히스토리, 풀 리퀘스트, 비교) 또는 명령 팔레트에서 접근할 수 있으며, 해당 커밋이나 브랜치에 고정됩니다; 각 블레임 라인의 커밋은 마우스를 올리면 미리보기 카드와 함께 히스토리에서 이동할 수 있는 클릭 기능을 제공합니다.
대화형 리베이스(Interactive rebase)⭐: 원자적 재생 엔진을 통해 푸시되지 않은 커밋들을 재작성(reword), 스쿼시(squash), 수정(fixup), 삭제(drop)하거나 순서를 바꿀 수 있는 편집 기록 편집기입니다 (충돌이 발생하면 자동으로 되돌립니다). 또는 커밋 하나를 선택하여 내용을 일시 중지하고 실제적이며 재개 가능한 방식으로 수정할 수도 있습니다 (GitHub Desktop의 기록 편집은 스쿼싱과 순서 변경, 그리고 최신 커밋만 수정하는 것에 그칩니다). 현재 브랜치나 다른 브랜치에 체리픽(Cherry-pick) 할 수도 있습니다.잃어버린 작업 복구(Recover lost work)⭐: git fsck를 통해 스캔하여 고아(orphaned)이거나 매달려 있는(dangling) stash들을 찾아내고, git stash로 저장되었지만 git stash list에서 사라진 (삭제되거나 중단된 작업으로 인해 버려진) 커밋되지 않은 작업들까지도 비파괴적으로 워킹 트리(working tree)에 복원하는 stash 브라우저입니다.작업 기록(Operation journal)⭐: GitDesktop이 수행하는 위험한 복합 작업을 기록합니다 (로컬 PR 병합, 체리픽, 기록 편집, 리베이스). 만약 이 작업 중 하나가 충돌이나 재시작으로 인해 중단되면, 침착한 복구 알림이 무엇이 중단되었는지와 정확히 시작했던 브랜치 및 커밋을 알려주며, 작업 기록 명령어를 통해 언제든지 탐색할 수 있습니다. 또한 태그 관리 및 릴리스 기능도 제공합니다: 에셋 업로드를 통해 태그를 게시, 편집 및 삭제할 수 있습니다. GitHub 릴리스가 latest.json 업데이트 매니페스트를 포함하는 경우, 노트(notes)를 편집하면 같은 저장소에서 매니페스트를 새로 고칠 수 있어 해당 릴리스로부터 업데이트하는 앱들이 방금 작성한 노트를 보여주게 됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기