| [[GitHub| | ||
| {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | <colbgcolor=#000,#000><colcolor=#fff,#fff> 관련 인물 | 톰 프레스턴 워너 |
| 서비스 | 저장소 · GitHub Pages · GitHub Action · GitHub Packages · GitHub Wiki · GitHub Gist · GitHub Copilot | |
| 클라이언트 | GitHub CLI · GitHub Desktop | |
| 오픈 소스 | Electron · Atom · Linguist · Tree-sitter | |
| 관련 문서 | 사건 사고 · GitHub Universe · npm | }}}}}}}}} |
| <bgcolor=#682286,#682286> GitHub Desktop | |
| | |
| <colbgcolor=#682286,#682286><colcolor=#fff,#fff> 개발 | GitHub |
| 출시 | 2017년 9월 19일# |
| 안정 버전 | v3.5.3(2025년 10월 8일) |
| 언어 | TypeScript |
| 프레임워크 | React, Electron |
| 플랫폼 | Windows, macOS |
| 라이선스 | MIT 라이선스 |
| 링크 | #[1] |
1. 개요
2. 특징
- 히스토리 편집 작업이 직관적이다. amend 등 기본적인 편집뿐 아니라 일상적인 리베이스 작업 대부분을 GUI에 어울리는 인터페이스로 제공한다. 예를 들어 히스토리 뷰에서 커밋을 드래그 앤 드롭함으로써 squash와 reorder가 가능하다. GitKraken 등 다른 GUI 툴에서는 내부 interactive rebase의 인터페이스를 잘 추상화해내지 못한 것과 대비되는 장점. 별도의 base commit 범위 선택이나 특정 모드로 진입할 필요 없이 히스토리 탭에서 바로 편집이 가능하다.
- GitHub과 연동성이 좋다. 예를 들어 최초 푸시를 위해서 수동 저장소 생성, 리모트 등록 등의 과정이 필요하나 Desktop의 경우 저장소 생성이 필요한 경우를 감지하면 다이얼로그 하나로 저장소를 생성할 수 있다. 이외에도 풀 리퀘스트, 깃헙 알림# 등 기능 연동이 앱 내에서 바로 가능하다.
- GitHub 사용을 강제하지 않는다. 리모트 제공자가 깃헙이 아닌 다른 서비스여도 핵심 기능들이 전부 동작하며, 깃 특성상 로컬에서만 쓸 수도 있다. GitHub 연동 기능이 풍부한 것은 맞으나 이는 리모트가 깃헙 저장소일 때만 활성화되는 것으로, 다른 서비스에서도 GitHub 고유의 기능을 제외하면 모든 기능이 사용 가능하다.
- 타 툴과의 연동성이 좋다. IDE의 역할을 대체하거나 관련 기능을 전부 통합하는 대신, 코드 수정이 필요할 때는 IDE를, 상세한 Git 작업이 필요할 때는 적절히 터미널이나 웹 GitHub 링크를 열 수 있게 설계해두어 워크플로에 기능 충돌이 생기지 않는다. 어떤 IDE를 열 것인지 직접 설정할 수도 있다.#
- 워크플로우 제안이 직관적이다. 로컬 변경사항 푸시, PR 생성 등 다음 작업이 필요할 때마다 summary 뷰에서 실시간으로 제안이 생성되며, 많은 경우 이 제안만 따라도 실수 없이 작업이 가능하다.
- hunk 단위만 가능한 git CLI와 다르게, lazygit처럼 라인 단위 partial commit이 가능하다.#
3. 단점
- Electron 기반이다 보니 무겁다. 특히 RAM이 적은 저사양 컴퓨터에서 이 단점이 더욱 크게 체감된다.
- 깃허브 연동 기능이 너무 협소하다. GitKraken 등 다른 서드파티 클라이언트와 비교해 봐도 공식 툴이라는 게 믿기 어려울 정도. 이슈나 풀 리퀘스트 작업을 상세하게 할 수 있는 것도 아니고, PR은 체크아웃 정도만 가능하다. 사실상 이슈 생성, PR 생성 등의 기능이 있어도 실제 생성 작업은 사용자가 웹 링크로 넘어가서 똑같이 수동으로 해야 한다. treecmp는 원래 깃 자체나 대부분의 IDE에도 있는 기능이니 '깃허브 클라이언트'로써의 특성이 부족하다. GitHub CLI가 다양하고 세세한 API를 더욱 잘 활용할 정도.
- 대부분의 타 Git 클라이언트와 다르게 히스토리를 그래프 형태로 보여주지 않는다. #1634, #9452 등의 시도들이 있었으나 10년 가까이 지난 지금도 아무런 진전이 없다. 특히 여러 브랜치와 머지가 진행되는 저장소일 때 매우 불편하다.
- GitHub 웹 UI와 비슷하게 브랜치 히스토리 정렬을 지원하지 않고, 반드시 reverse chronological order로 고정된다. 때문에 최초 커밋을 찾기 위해선 일일히 스크롤하는 방법밖에 없다.#
- 아직 Linux를 공식적으로 지원하지 않는다.#@[2] 다만 소스가 Electron 기반인 만큼 포팅 난이도는 높지 않아 다음과 같은 비공식 포크를 대신 사용할 수 있다.
- shiftkey 버전 - GitHub의 엔지니어 직윈이 제작한 포크로, Linux 버전만 지원한다. 다만 단순 Linux로 포팅하는 것에만 중점을 두었는지 로그인 관련 버그가 발생해도 '해결할 수 없다'라고 하고 고치지 않기도 하며, 설상가상으로 2025년 2월 업데이트를 마지막으로 개발이 지체되어 있다. 인증 및 XDG open, 키링 서비스, external editor 및 terminal 설정 등에서 리눅스 환경과의 연계에서 현저히 저조한 호환성을 보여준다는 단점이 있다. Nix의 경우 25.05 기준 nixpkgs에 올라와 있는# 유일한 포크이다.
- GitHub Desktop Plus - 기존 GitHub Desktop의 단점을 개선하고 다양한 편의성 기능들을 추가한 포크. 2025년 10월 기준 꾸준히 업데이트되고 있으며, Linux 환경을 완벽하게 지원한다.
- 여러 리모트를 지원하지 않는다. 해당 리모트 제공자가 GitHub인지 여부와 무관하게, 저장소 설정에는 primary remote 하나만 존재하고
origin리모트 또는 없다면 가장 최근에 생성된 리모트만을 선택한다.# 특히 개인 미러 저장소나 여러 하드 포크에서 작업한다면 문제가 된다.
4. 기타
- 깃허브 이모지 렌더를 지원한다. 웹 버전과 다르게 마크다운은 지원하지 않는다.
- CLI에서
$ github <저장소 경로>로 열 수 있다.# 리눅스 버전의 경우$ github-desktop이 필요하다.
[1] 과거 주소는 desktop.github.com이었으나 깃허브 사이트 통합 이후 현재 주소로 리다이렉트된다.[2] Linux is not yet supported. #@