# GitHub Desktop 사용법: 다운로드, 설치, 명령줄 없이 Git 쓰는 방법

URL: https://skillaria.top/ko/guides/git/github-desktop-guide

GitHub Desktop은 GitHub가 제공하는 무료 앱으로 Windows와 macOS에서 사용할 수 있습니다. 변경 사항 확인, commit, push, pull, 브랜치, 병합, 충돌 해결을 버튼으로 처리합니다. desktop.github.com에서 내려받아 GitHub 계정으로 로그인한 뒤 저장소를 clone하면 바로 시작할 수 있습니다.

## GitHub Desktop이란

GitHub Desktop은 GitHub가 Windows와 macOS용으로 배포하는 무료 오픈소스 앱입니다. 변경된 파일, 커밋 기록, 브랜치를 창에 보여 주고, Git의 주요 명령을 버튼 클릭으로 실행할 수 있습니다. 앱 안에 Git이 내장되어 있어서 Git을 따로 설치하지 않아도 사용할 수 있습니다.

"git desktop이 뭐예요?"라는 질문에는, GitHub에 특화된 Git 그래픽 클라이언트라고 답할 수 있습니다. 클릭 한 번으로 GitHub 저장소를 clone할 수 있고, pull request를 만들고 검사 상태를 확인할 수 있습니다. GitLab이나 사내 서버처럼 HTTPS로 접근할 수 있는 다른 원격 저장소에도 연결할 수 있습니다.

GitHub Desktop은 초보자, 디자이너, 기술 문서 작성자처럼 "수정하고, commit하고, 보낸다"는 흐름을 분명하게 확인하고 싶은 사람에게 잘 맞습니다. 숙련된 개발자도 diff를 눈으로 확인하거나 줄 단위로 부분 commit을 할 때 사용합니다. 복잡한 작업은 보통 터미널에서 처리합니다.

## GitHub Desktop 다운로드 방법

공식 다운로드 주소는 desktop.github.com입니다. 사이트가 사용자의 운영체제를 자동으로 감지해서 Windows용 설치 파일이나 macOS용 압축 파일을 제안합니다. 다운로드는 공식 사이트나 GitHub의 desktop/desktop 저장소 릴리스 페이지에서만 하세요. "GitHub Desktop 무료 다운로드"로 검색되는 제3자 사이트의 파일에는 무엇이 들어 있는지 알 수 없습니다.

Linux용 공식 버전은 없습니다. 커뮤니티가 관리하는 포크(shiftkey/desktop 저장소)가 .deb, .rpm, AppImage 패키지로 배포되지만, 이는 공식 빌드가 아닙니다. Linux에서는 터미널이나 편집기에 내장된 Git 기능을 쓰는 편이 더 편리합니다.

### Windows 설치

1. 내려받은 GitHubDesktopSetup 파일을 실행합니다.
2. 설치 프로그램은 별도로 묻지 않고 현재 사용자 프로필에 설치한 뒤 바로 실행합니다.
3. 관리자 권한은 필요 없습니다. 업데이트도 앱이 자동으로 내려받습니다.

조직의 컴퓨터에 설치해야 한다면 별도의 MSI 설치 프로그램을 쓸 수 있습니다. GitHub Desktop 문서에서 찾아보세요.

### macOS 설치

1. 내려받은 zip 파일을 풉니다.
2. GitHub Desktop을 "응용 프로그램(Applications)" 폴더로 드래그합니다.
3. 앱을 실행하고, 인터넷에서 내려받은 프로그램을 여는 것을 확인합니다.

Intel 프로세서용과 Apple Silicon용 빌드가 있습니다. 보통 사이트에서 맞는 빌드를 자동으로 추천합니다. Homebrew로 설치할 수도 있습니다.

```
brew install --cask github
```

## 계정 로그인과 초기 설정

처음 실행하면 GitHub.com 로그인을 요청합니다. 로그인 버튼을 누르면 브라우저가 열리고, 앱이 계정에 접근하도록 승인하면 됩니다. 앱에 비밀번호를 직접 입력할 필요는 없습니다. 2단계 인증도 브라우저에서 평소처럼 진행됩니다. GitHub Enterprise를 쓰는 경우에는 별도의 로그인 방법이 있습니다.

이어서 Git 설정으로 이름과 이메일을 입력합니다. 여기서 입력한 값이 모든 commit에 기록됩니다. `git config --global`로 설정하는 `user.name`, `user.email`과 같은 값입니다. Git을 이미 설정해 두었다면 값이 자동으로 채워집니다. commit을 GitHub 프로필과 연결하려면, 계정에 등록된 이메일이나 `ID+사용자명@users.noreply.github.com` 형식의 주소를 입력하세요.

나중에 바꾸고 싶으면 Windows에서는 File → Options, macOS에서는 GitHub Desktop → Settings에서 변경할 수 있습니다. 외부 편집기(예: VS Code)와 터미널 지정, 테마 선택도 여기서 합니다.

## 저장소 clone

clone은 원격 저장소를 기록 전체와 함께 복사하는 것입니다. GitHub Desktop에서는 File → Clone repository로 진행합니다. 창에는 탭이 세 개 있습니다. GitHub.com에 있는 내 저장소 목록, GitHub Enterprise 저장소 목록, 그리고 URL 탭입니다. URL 탭에는 GitLab을 포함한 어떤 주소든 붙여 넣을 수 있습니다.

1. 목록에서 저장소를 고르거나 URL을 붙여 넣습니다.
2. 로컬 폴더(Local path)를 지정합니다.
3. Clone을 누르고 다운로드가 끝날 때까지 기다립니다.

같은 작업을 `git clone` 명령으로도 할 수 있습니다. GitHub의 저장소 페이지에서 Code 버튼 메뉴의 Open with GitHub Desktop을 선택하면, 주소가 채워진 상태로 앱이 열립니다. 쓰기 권한이 없는 저장소를 clone한 경우, 변경 사항을 보내려고 할 때 포크를 만들라는 안내가 나옵니다.

이미 있는 Git 프로젝트 폴더는 File → Add local repository로 추가합니다. 새 저장소는 File → New repository로 만듭니다. 이때 `.gitignore` 템플릿, 라이선스, README를 바로 선택할 수 있습니다.

## GitHub Desktop에서 commit 만들기

왼쪽의 Changes 탭에는 변경된 파일이 모두 나열됩니다. 오른쪽에는 선택한 파일의 diff가 표시되며, 삭제된 줄은 빨간색, 추가된 줄은 초록색으로 나타납니다. 파일 옆의 체크박스로 그 파일을 commit에 포함할지 정합니다. 이것이 스테이징 영역(staging area)과 `git add`에 해당합니다.

1. commit하고 싶지 않은 파일의 체크를 해제합니다.
2. 필요하면 diff에서 개별 줄을 클릭해 제외합니다. 이것이 부분 commit이며, `git add -p`와 같은 역할을 합니다.
3. 하단의 Summary에 짧은 설명을 입력하고, 필요하면 Description에 자세한 내용을 씁니다.
4. Commit to <브랜치 이름> 버튼을 누릅니다.

commit은 아직 내 컴퓨터에만 만들어지며 서버로는 보내지 않은 상태입니다. GitHub Desktop에서 commit은 작고 의미 있는 단위로 나누는 것이 좋습니다. 어떤 파일과 줄이 어느 commit에 들어갔는지 쉽게 알 수 있습니다. commit에 실수가 있으면 바로 아래에 나타나는 Undo 버튼으로 취소할 수 있습니다. 아직 보내기 전이라면 변경 사항은 작업 폴더로 돌아옵니다.

저장소에 넣고 싶지 않은 파일은 파일의 우클릭 메뉴에서 제외할 수 있습니다. 이 메뉴를 선택하면 그 파일이 `.gitignore`에 추가됩니다. commit하지 않은 변경 사항을 되돌리려면 같은 메뉴의 Discard changes를 사용합니다. 변경 내용은 삭제되며(Windows와 macOS의 휴지통에는 남습니다), 되돌릴 수 없는 작업으로 생각하는 것이 안전합니다.

## Push, pull, fetch: 서버와 동기화하기

창 상단의 주요 버튼은 상황에 따라 이름이 바뀝니다. 이 버튼 하나로 git desktop push와 git desktop pull을 한 번의 클릭으로 실행할 수 있습니다.

| 버튼에 표시되는 문구 | 실제로 일어나는 일 | 해당하는 Git 명령 |
| --- | --- | --- |

| Publish repository | 로컬 저장소가 아직 GitHub에 없음. 만들고 보냄 | remote 생성 + `git push -u` |

| Publish branch | 브랜치가 로컬에만 있음 | `git push -u origin 브랜치` |

| Fetch origin | 서버에 새 commit이 있는지 확인 | `git fetch` |

| Pull origin | 서버에 새 commit이 있어서 가져와야 함 | `git pull` |

| Push origin | 로컬에 보낼 commit이 있음 | `git push` |

버튼 옆에는 보낼 commit 수(위쪽 화살표)와 가져올 commit 수(아래쪽 화살표)가 표시됩니다. 앱이 백그라운드에서 주기적으로 fetch를 하기 때문에, 동료가 무언가를 보내면 Pull 버튼이 자동으로 나타납니다.

내 브랜치와 서버 브랜치가 갈라져 있고, 양쪽 모두 새 commit이 있으면 push가 거부됩니다. 먼저 Pull origin을 실행하세요. Git이 변경 사항을 병합하고, 같은 부분이 겹치면 충돌이 발생합니다. 이미 보낸 commit을 바꾸는 작업(예: rebase) 다음에만 기록을 덮어쓰는 force push를 제안합니다.

## 브랜치 만들기, 전환하기, checkout

브랜치는 창 상단의 Current branch 드롭다운 메뉴에서 관리합니다. 이 메뉴에는 로컬과 원격 브랜치 목록, 검색창, New branch 버튼이 있습니다. 목록에서 브랜치를 선택하는 것이 git desktop checkout입니다. 앱이 작업 폴더를 그 브랜치로 전환합니다. 아직 로컬에 없는 원격 브랜치를 선택하면, 추적 설정이 된 로컬 브랜치가 만들어집니다.

새 브랜치는 현재 브랜치나 기본 브랜치에서 만들어집니다. 선택지가 있으면 앱이 물어봅니다. 새로 만든 브랜치는 아직 내 컴퓨터에만 있으므로, 상단 버튼이 Publish branch로 바뀝니다. 브랜치 이름 변경과 삭제는 Branch 메뉴나 목록의 브랜치 우클릭 메뉴에서 합니다. 삭제할 때 GitHub에 있는 브랜치도 함께 지울지 선택할 수 있습니다.

작업이 끝나면 Branch 메뉴의 Create pull request를 선택합니다. 브라우저가 열리면서 GitHub의 pull request 작성 페이지가 나타납니다. 리뷰와 병합은 그 사이트에서 진행합니다.

## GitHub Desktop에서 merge와 rebase

다른 브랜치를 현재 브랜치에 합치려면, Current branch 메뉴에서 Choose a branch to merge into <브랜치>를 선택합니다(Branch 메뉴에도 같은 항목이 있습니다). 병합 전에 합쳐질 commit 수와 충돌 여부를 미리 보여 줍니다. 이것이 git desktop merge이며, 일반적인 `git merge`와 같은 동작입니다.

같은 메뉴에는 브랜치의 모든 commit을 하나로 합치는 Squash and merge와, 현재 브랜치의 commit을 선택한 브랜치 위로 옮기는 Rebase current branch가 있습니다. git desktop rebase가 이것입니다. 이미 보낸 브랜치를 rebase하면 서버와 내 기록이 달라지고, Push 버튼이 Force push origin으로 바뀝니다. 나 외에 아무도 작업하지 않는 내 브랜치에서만 실행하세요.

History 탭에서는 commit을 다른 브랜치로 끌어다 놓거나(cherry-pick에 해당), 다른 commit 위에 겹쳐 하나로 합치거나(squash), 순서를 바꿀 수 있습니다. 모든 작업을 지원하는 대화형 rebase는 없습니다. 그것이 필요하면 터미널에서 `git rebase -i`를 사용해야 합니다.

## 병합 충돌 해결

두 브랜치에서 같은 줄이 바뀌었다면, merge, pull, rebase 도중에 충돌한 파일의 목록이 나타나는 창이 뜹니다. 각 파일을 외부 편집기에서 열어 직접 고치거나, 내 버전 또는 들어오는 버전 중 하나를 통째로 선택할 수 있습니다.

편집기에서 충돌은 다음과 같이 보입니다.

```
> feature/pagination
```

필요한 버전을 남기고, 마커를 지운 뒤 파일을 저장하세요. 모든 파일에서 마커가 사라지면 GitHub Desktop이 해결됨으로 표시하고, 병합을 계속하는 버튼이 활성화됩니다. 이 버튼은 병합 commit을 만듭니다. 문제가 생기면 같은 창의 취소 버튼으로 병합을 중단할 수 있습니다. 이는 `git merge --abort`에 해당합니다.

## GitHub Desktop에서 git stash 사용하기

메인 화면에 "stash" 버튼은 없지만 같은 기능은 있습니다. 커밋하지 않은 변경 사항이 있는 상태에서 다른 브랜치로 전환하면, 앱이 그 변경 사항을 어떻게 할지 묻습니다. "현재 브랜치에 남겨 두기"를 선택하면 변경 사항이 stash에 저장됩니다. 이것이 GitHub Desktop에서 git stash가 동작하는 방식입니다.

직접 임시 저장하려면 변경 목록의 우클릭 메뉴에서 Stash all changes를 선택합니다. 원래 브랜치로 돌아가면 Changes 탭 하단에 Stashed changes 줄이 나타납니다. 거기서 임시 저장된 파일을 확인하고, Restore로 복원하거나 삭제할 수 있습니다.

제한 사항: GitHub Desktop은 브랜치마다 stash를 하나만 보관합니다. 여러 항목이 필요하다면, 특정 항목을 골라 `git stash pop`을 하거나 `git stash apply stash@{1}`을 쓰세요. 이런 작업은 터미널에서 합니다. 저장소 메뉴에서 터미널을 열면 올바른 폴더에서 바로 작업할 수 있습니다.

## GitHub Desktop에서 Git LFS 사용하기

Git LFS는 동영상, PSD, 3D 모델처럼 큰 바이너리 파일을 별도의 서버에 저장하고, 저장소에는 포인터만 남기는 방식입니다. GitHub Desktop은 LFS를 지원합니다. LFS를 쓰는 저장소를 clone하거나 열면, Git LFS 초기화를 제안하고 그 뒤로는 큰 파일을 자동으로 내려받고 보냅니다.

다만 어떤 파일을 LFS로 관리할지는 GUI에서 지정할 수 없습니다. 이 설정은 터미널에서 한 번만 하면 됩니다. 그 뒤로는 GitHub Desktop 안에서 git lfs가 자연스럽게 동작합니다.

```
git lfs install
git lfs track "*.psd"
git add .gitattributes
git commit -m "Track PSD files with Git LFS"
```

용량 제한도 확인하세요. 무료 GitHub 계정은 LFS 저장 공간과 전송량에 제한이 있습니다. 최신 한도는 계정의 결제 설정에서 확인하세요.

## Reset, revert, 기록 보기

History 탭에는 현재 브랜치의 commit과 각 commit의 변경 내용이 표시됩니다. commit의 우클릭 메뉴에서 다음 기능을 쓸 수 있습니다.

- **Revert changes in commit**: 선택한 commit을 되돌리는 새 commit을 만듭니다. 이미 보낸 commit에도 안전하게 쓸 수 있습니다.
- **Create branch from commit**과 **Create tag**: 기록의 임의의 지점에서 브랜치나 태그를 만듭니다.
- **Amend commit**: 마지막 commit의 메시지를 고치거나 파일을 추가합니다.
- **Reset to commit**: 최신 버전의 앱에서 제공됩니다. 선택한 commit까지 브랜치를 되돌리되, 변경 사항은 작업 폴더에 남깁니다(`git reset --mixed`에 해당).

변경 사항을 완전히 버리는 git desktop reset(`git reset --hard`에 해당)은 GUI에 없습니다. 초보자가 작업을 잃지 않도록 일부러 넣지 않은 기능입니다. 필요하다면 터미널에서 실행하세요. 잃어버린 commit은 `git reflog`로 찾을 수 있습니다.

## 명령줄을 써야 할 때

GitHub Desktop은 일상적인 작업 흐름을 대부분 다루지만, 다음 작업은 쓸 수 없거나 불편합니다.

- 모든 작업을 지원하는 대화형 rebase, `git bisect`, `git reflog`, `git worktree`;
- 여러 개의 stash 항목, 서브모듈, remote의 세부 설정;
- SSH로 서버에서 작업하거나 스크립트와 CI에서 자동화하는 경우;
- 공식 버전이 없는 Linux.

또한 면접에서는 실제 명령을 묻습니다. `fetch`, `merge`, `rebase`가 무엇을 하는지 이해하고 있으면 GUI를 쓸 때도 도움이 됩니다. 현실적인 접근법은 명령줄을 확실히 익히고, diff 확인, 부분 commit, 충돌 해결처럼 앱이 시간을 아껴 주는 곳에서만 앱을 쓰는 것입니다. GitHub Desktop에서는 저장소 메뉴를 통해 프로젝트 폴더에서 터미널을 바로 열 수 있습니다.

## 정리

GitHub Desktop은 Windows와 macOS에서 Git을 쓰는 간단하고 무료인 방법입니다. desktop.github.com에서 내려받고, 계정에 로그인하고, 저장소를 clone하면 commit, push, pull, 브랜치, 충돌 해결을 버튼으로 할 수 있습니다. stash, LFS, reset에는 기능상의 한계가 있고, 복잡한 작업은 여전히 터미널의 몫입니다. 원격 저장소, push, pull, pull request를 통한 팀 작업은 Git 강의에서 실습으로 자세히 다룹니다.

## FAQ

**GitHub Desktop은 무료인가요?**

네, 앱은 완전히 무료이며 오픈소스로 배포됩니다. 필요하다면 GitHub 자체의 유료 요금제에 가입해야 하지만, 앱 사용에는 비용이 들지 않습니다.

**GitHub Desktop을 쓰려면 Git을 따로 설치해야 하나요?**

아니요. 앱에 Git이 내장되어 있습니다. 다만 터미널에서도 작업하고 싶다면 운영체제에 Git을 따로 설치하세요.

**GitHub Desktop으로 GitLab이나 Bitbucket을 쓸 수 있나요?**

네. URL 탭에 HTTPS 주소를 입력하면 저장소를 clone할 수 있습니다. pull request 연동과 계정 로그인은 GitHub에서만 동작합니다.

**GitHub Desktop은 한국어를 지원하나요?**

공식 한국어 인터페이스는 없으며, 앱은 영어로 표시됩니다. 버튼 이름이 짧고 Git 명령에 대응하기 때문에 익히면 어렵지 않게 쓸 수 있습니다.

**GitHub Desktop에서 파일 변경이 보이지 않는 이유는 무엇인가요?**

대부분 그 파일이 .gitignore 규칙에 해당하거나, 다른 저장소의 폴더를 열어 두었기 때문입니다. Current repository 메뉴에서 경로를 확인하고 .gitignore 내용도 점검하세요.


---
Source: Skillaria.Top (https://skillaria.top)
