빠른 흐름
# Fork의 대표 작업 흐름
1. 저장소 열기 → 브랜치 그래프에서 현재 상태 파악
2. 파일 변경 후 Changes 탭에서 줄 단위 stage 선택
3. 커밋 메시지 작성 후 Commit
4. 좌측 사이드바에서 브랜치 전환 또는 Remote > Push
5. Interactive Rebase로 히스토리 정리기본 흐름
어떤 저장소 복제 흐름을 먼저 떠올리면 되나
| 상황 | 먼저 떠올릴 선택 |
|---|---|
| 원본 저장소에 직접 쓰기 권한 없음 | fork |
| 내 계정 저장소에서 작업 | fork한 저장소 clone |
| 원본 최신 변경 따라가기 | upstream remote 추가 후 fetch |
| 변경 제안 보내기 | fork 브랜치에서 PR 생성 |
줄 단위 stage는 커밋 품질을 높이는 핵심 기능이다
Fork의 diff 화면에서는 파일 단위가 아니라 줄(hunk) 단위로 stage를 선택할 수 있습니다. 한 파일에서 논리적으로 다른 두 가지 변경을 동시에 했을 때, 각각을 별도 커밋으로 분리할 수 있다는 의미입니다. 커밋을 작게 유지하면 코드 리뷰 가독성이 높아지고, git bisect로 회귀 버그를 추적할 때도 범위가 좁아져 원인 파악이 빠릅니다. CLI에서는 git add -p로 같은 작업을 할 수 있지만, Fork의 시각적 diff는 변경 내용을 보면서 선택할 수 있어 실수가 적습니다.
# CLI 동등 작업
git add -p # 대화식 줄 단위 stage
git diff --staged # stage된 내용 확인Interactive Rebase를 GUI로 다룰 수 있어 히스토리 정리 진입 장벽이 낮다
Fork는 interactive rebase를 드래그 앤 드롭으로 커밋 순서를 바꾸거나, squash/fixup을 버튼으로 선택할 수 있는 UI로 제공합니다. 이 기능이 중요한 이유는, rebase는 커밋 SHA를 새로 만들어 히스토리를 다시 쓰는 작업이기 때문에 순서와 범위를 시각적으로 확인하며 진행하는 것이 CLI보다 오류가 적기 때문입니다. PR 올리기 전에 WIP 커밋을 정리하거나, 여러 커밋을 하나로 squash하는 일상적인 작업에서 Fork의 GUI가 특히 유용합니다. 단, rebase는 이미 공유된 브랜치에 적용하면 다른 협업자의 히스토리와 충돌합니다.
# CLI 동등 작업
git rebase -i HEAD~3 # 최근 3개 커밋을 대화식으로 정리
# pick, squash, fixup, reword, drop 중 선택Linux 미지원이 팀 환경 선택에서 결정적 제약이 된다
Fork는 macOS와 Windows만 지원합니다. 팀원 중 Linux 사용자가 있다면 Fork를 공통 도구로 지정할 수 없습니다. 이 경우 GitHub Desktop, GitKraken, 또는 VS Code의 Git 통합 등 크로스플랫폼 대안을 고려해야 합니다. 개인 개발자라면 문제가 없지만, 팀 표준 도구를 선택할 때는 플랫폼 지원 범위를 먼저 확인하는 것이 중요합니다.
# 플랫폼별 대안 도구 비교
Fork → macOS, Windows만 지원
GitHub Desktop → macOS, Windows만 지원
GitKraken → macOS, Windows, Linux 지원
VS Code Git → macOS, Windows, Linux 지원 (크로스플랫폼 최우선)Fork는 유료 라이선스 모델이어서 팀 도입 시 비용을 고려해야 한다
Fork는 평가판으로 무기한 사용할 수 있지만, 상업적 사용에는 유료 라이선스가 필요합니다. 개인 프로젝트나 오픈소스 기여에는 무료로 충분하지만, 회사 업무에 팀 전체가 도입하려면 인원 수만큼 라이선스 비용이 발생합니다. 이 점에서 완전 무료인 GitHub Desktop이나 VS Code Git 통합과 직접 비교됩니다. 기능 대비 비용을 팀 규모와 함께 고려해 도구를 선택하는 것이 현실적입니다.
# 도구 선택 기준 정리
무료 + GitHub 중심 → GitHub Desktop
무료 + 크로스플랫폼 → VS Code Git, GitKraken(기본 무료)
유료 + 강력한 diff/rebase → Fork (개인/소규모 팀에 특히 적합)선택 기준
| 상황 | 적합한 선택 |
|---|---|
| diff를 보면서 줄 단위로 stage하고 싶을 때 | Fork의 Changes 탭 활용 |
| Interactive rebase를 시각적으로 다루고 싶을 때 | Fork의 Rebase 화면 |
| macOS/Windows 혼합 팀에서 공통 GUI 도구 | Fork 적합 |
| Linux 포함 팀에서 공통 GUI 도구 필요 | GitKraken 또는 VS Code Git |
| 무료 도구로 팀 표준 통일하고 싶을 때 | GitHub Desktop 또는 VS Code Git |
주의할 점
Fork의 Interactive Rebase UI는 진입 장벽을 낮추지만, 실제로는 커밋 SHA를 새로 만들어 히스토리를 다시 쓰는 작업입니다. 이미 원격에 push하거나 다른 팀원이 pull한 브랜치에 rebase를 적용하면 협업자의 로컬 히스토리와 충돌이 생깁니다. GUI가 단순해 보여도 어떤 Git 작업인지 이해하고 쓰는 것이 중요합니다.
참고 링크
1 sources