핵심 정리
# GitHub Desktop의 기본 작업 흐름
1. File > Clone Repository로 저장소 복제
2. Current Branch에서 New Branch 생성
3. 파일 수정 후 Changes 탭에서 변경 확인
4. 커밋 메시지 작성 후 Commit to <branch>
5. Push origin → Create Pull Request로 PR 열기기본 흐름
어떤 GitHub Desktop 흐름을 먼저 떠올리면 되나
| 상황 | 먼저 떠올릴 선택 |
|---|---|
| 시각적으로 변경 파일 확인 | Changes 탭 |
| 파일/줄 단위 스테이징 | 체크박스 + diff 뷰 |
| 브랜치 전환 | Current Branch |
| 원격 반영 | Push origin |
| PR 열기 | Create Pull Request |
GitHub Desktop은 PR 중심 협업 흐름을 하나의 창 안에서 완결한다
GitHub Desktop의 핵심 설계 원칙은 "브랜치 생성 → 커밋 → PR 열기"로 이어지는 GitHub 협업 흐름을 GUI 안에서 끊김 없이 처리하는 것입니다. Push 후 "Create Pull Request" 버튼을 클릭하면 브라우저로 GitHub PR 생성 페이지가 바로 열립니다. CLI에서 같은 흐름을 처음 배우는 사람에게 각 단계가 시각적으로 명확히 보이기 때문에 학습 곡선이 낮습니다. 반면 Cherry-pick, rebase, interactive rebase 같은 고급 조작은 지원하지 않거나 제한적이므로, 해당 작업이 필요하면 CLI로 전환해야 합니다.
# GitHub Desktop이 잘 지원하는 흐름 (CLI 대응)
Create Branch → git switch -c <branch>
Commit → git commit -m "..."
Push origin → git push -u origin <branch>
Create PR → gh pr create (또는 브라우저)Changes 탭의 diff 뷰는 파일 단위 스테이징을 시각적으로 제어한다
GitHub Desktop의 Changes 탭은 파일별 체크박스로 스테이징 여부를 선택하고, 우측 diff 패널에서 줄 단위 변경을 미리 볼 수 있습니다. CLI의 git add + git diff --staged 조합을 한 화면에서 처리하는 구조입니다. 단, 줄(hunk) 단위 선택적 스테이징은 지원하지 않습니다. 한 파일 내에서 논리적으로 다른 두 변경을 분리 커밋해야 할 때는 Fork나 CLI의 git add -p를 써야 합니다.
# CLI 동등 작업
git status # 변경 파일 목록
git diff # 줄 단위 변경 확인
git add <file> # 파일 스테이징
git diff --staged # 커밋 예정 내용 확인GitHub 계정 인증이 내장되어 있어 HTTPS 자격 증명 설정 없이 바로 push할 수 있다
GitHub Desktop은 GitHub OAuth 로그인을 통해 인증을 처리하므로, SSH 키 생성이나 HTTPS credential helper 설정 없이 바로 clone하고 push할 수 있습니다. 이 점이 Git을 처음 설치하는 환경에서 큰 장점입니다. 반면 GitHub 외 GitLab, Bitbucket 등 다른 원격 서비스는 지원이 제한적이어서, 멀티 플랫폼 환경에서는 다른 도구를 고려해야 합니다.
# CLI에서 동등한 인증 설정
git config --global credential.helper manager # Windows
git config --global credential.helper osxkeychain # macOS
# 또는 SSH 키 등록
ssh-keygen -t ed25519 -C "email@example.com"선택 기준
| 상황 | 적합한 선택 |
|---|---|
| GitHub 저장소, PR 중심 협업 | GitHub Desktop |
| 줄(hunk) 단위 선택적 스테이징 필요 | Fork 또는 git add -p |
| Interactive rebase, cherry-pick 필요 | CLI 또는 Fork |
| GitHub 외 서비스(GitLab 등) 사용 | CLI 또는 다른 GUI 클라이언트 |
| Git 처음 입문, 인증 설정 없이 시작 | GitHub Desktop |
주의할 점
GitHub Desktop은 GitHub 협업 흐름에 최적화된 도구이며 모든 Git 기능을 대체하지 않습니다. Interactive rebase, cherry-pick, stash, bisect 등의 고급 작업은 지원하지 않거나 제한적입니다. 복잡한 히스토리 정리나 세밀한 제어가 필요하면 CLI를 병행해야 합니다. GUI가 단순해 보여도 내부적으로 동일한 Git 명령이 실행되므로, 어떤 Git 동작이 일어나는지 이해하고 쓰는 것이 중요합니다.
참고 링크
1 sources