
🖥️ Git & GitHub 설치, (PR) 가이드
개발을 하다 보면 개인 프로젝트뿐 아니라 팀 프로젝트, 오픈소스 참여 등 협업 상황을 반드시 경험하게 됩니다. 그 중심에 있는 도구가 바로 Git과 GitHub입니다.
이번 글에서는 Git 설치부터 GitHub 계정 연동, 저장소 클론, 그리고 **협업을 위한 Fork와 Pull Request(PR)**까지 한 번에 정리해 보겠습니다.
1️⃣ Git 설치하기
Git은 오픈소스 버전 관리 도구로, 소스코드의 변경 이력을 추적하고 여러 명이 동시에 개발할 수 있게 해줍니다.
설치 과정은 간단하지만, 이후 연동 과정에서 자주 막히는 경우가 많으므로 꼼꼼히 따라 해보세요.


- 다운로드 링크: https://git-scm.com/downloads
- OS별 설치 방법
- Windows → 설치 마법사 진행 (기본 옵션 그대로 Next 추천)
- macOS → brew install git
- Linux(Ubuntu) → sudo apt-get install git
둘 중 하나 골라서 설치, 만약 왼쪽 windows를 눌렀다면 체크 박스 안에 있는 Click here to download 를 누르세요.
누르면 이런 식으로 설치가 되고 파일을 열어 구축환경을 만들면 됩니


만약 제대로 설치가 됐다면 win + r 을 눌러 실행창에 cmd를 입력해 획인을 누릅니다 그러면 cmd(명령 프롬프트)창이 뜨는데 버전 확인을 해주면 됩니다.
👉 설치 완료 후 버전 확인:

git --version
2️⃣ GitHub 계정 생성 & 데스크탑 설치 & Git 연동
- GitHub 접속 후 회원가입: https://github.com/
- GitHub Desktop 설치 : GitHub Desktop | Simple collaboration from your desktop


3. Git Bash를 윈도우에서 검색하여 창을 띄우면 아래 창과 같이 뜹니다.

Git Bash에 사용자 정보 등록:

git config --global user.name "내 닉네임"
git config --global user.email "내 이메일"
git config --list
- 정상적으로 정보등록이 됐는지 확인하기 위해서 git config --list를 입력합니다 그러면 여러 정보들이 뜨는데 그냥 맨 아래로 내리시면 입력한 자신의 아이디와 이메일이 아래 사진과 같이 출력되는 것을 확인 할 수 있습니다.

4. SSH 키 생성 및 등록:
ssh-keygen -t rsa -b 4096 -C "내 이메일"
cat ~/.ssh/id_rsa.pub
→ 생성된 키를 GitHub → Settings → SSH and GPG keys에 등록하면 완료!
5. 소스트리(SourceTree)는 Git GUI를 사용하는 것 입니다. 보통 깃을 처음 접하시는 분들께 추천합니다
다운로드 중 login하라는 문구가 뜨기 때문에 홈페이지로 돌아가서 Bitbucket 계정을 생성하면 된다. 즉 회원가입
장점
- 브랜치 한눈에 보기 → 복잡한 Git 히스토리를 트리 구조로 시각화.
- 충돌 해결 편리 → 어떤 파일이 충돌났는지 쉽게 확인 & 수정 가능.
- 명령어 몰라도 됨 → 버튼 클릭으로 commit, push, pull 가능.
- 부분 커밋 가능 → 파일 일부만 골라서 커밋할 수 있음.
- 여러 Git 서비스 연동 → GitHub, GitLab, Bitbucket 등 쉽게 연결.
- Git Flow 지원 → 협업용 브랜치 전략 자동화.
👉 정리: 소스트리는 Git을 직관적으로 다룰 수 있게 해주는 무료 GUI 도구라서, 초보자와 협업할 때 특히 유용하다!
설치 URL : Sourcetree | Free Git GUI for Mac and Windows
Sourcetree | Free Git GUI for Mac and Windows
A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.
www.sourcetreeapp.com

3️⃣ 저장소 생성 & 클론하기
- GitHub에서 새 저장소 생성 (New Repository 버튼 클릭)
- 이름 입력 → Public/Private 선택 → README 여부 체크


2. 로컬에 클론:
git clone git@github.com:내아이디/내저장소.git
3. 코드 작성 후 업로드:
git add . git commit -m "첫 커밋" git push origin main
4️⃣ 협업할 때 꼭 알아야 할 Fork & Pull Request
개인 프로젝트와 달리, 팀 프로젝트나 오픈소스에 참여할 때는 직접 원본 저장소에 푸시(push)할 수 없습니다. 이때 사용하는 방식이 **Fork + Pull Request(PR)**입니다.
📌 Fork란?
다른 사람의 저장소를 내 계정으로 "복사"해오는 기능.
이후 내 저장소에서 자유롭게 수정할 수 있고, 수정한 내용을 원본 저장소에 제안할 수 있습니다.

📌 VS Code로 수정하기
- Fork 한 저장소를 클론:
git clone git@github.com:내아이디/원본저장소이름.git
- VS Code에서 코드 수정
- 파일 열기 → 수정 → 저장
- 수정 후 커밋 & 푸시:
git add .
git commit -m "버그 수정: 로그인 에러 해결"
git push origin main

📌 Pull Request(PR) 올리기
- GitHub 내 저장소 페이지에서 Pull Request 클릭
- 변경된 내용을 설명하고, 원본 저장소로 PR 제출
- 저장소 관리자가 리뷰 후 병합(Merge)

📌 Git 명령어 정리
| 키워드 | 명령어 | 설명 |
| 환경 설정 | git config --global user.name "이름" | 사용자 이름 설정 |
| git config --global user.email "메일주소" | 사용자 이메일 설정 | |
| git config --list | 현재 Git 설정 확인 | |
| 저장소 초기화 | git init | 로컬 저장소 초기화 |
| git clone <URL> | 원격 저장소 복제 | |
| 변경 관리 | git status | 변경사항 확인 |
| git add <파일> | 특정 파일 스테이징 | |
| git add . | 모든 변경 파일 스테이징 | |
| git commit -m "메시지" | 커밋 생성 | |
| git log --oneline --graph --all | 로그 간단히 보기 | |
| 브랜치 | git branch | 브랜치 목록 보기 |
| git branch <브랜치명> | 새 브랜치 생성 | |
| git checkout <브랜치명> | 브랜치 이동 | |
| git checkout -b <브랜치명> | 브랜치 생성 + 이동 | |
| git switch <브랜치명> | 브랜치 이동 (신규 명령어) | |
| git switch -c <브랜치명> | 브랜치 생성 + 이동 | |
| git branch -d <브랜치명> | 브랜치 삭제 (병합된 경우) | |
| git branch -D <브랜치명> | 강제 브랜치 삭제 | |
| 원격 저장소 | git remote -v | 원격 저장소 확인 |
| git remote add <이름> <URL> | 원격 저장소 추가 | |
| git remote remove <이름> | 원격 저장소 삭제 | |
| 동기화 | git fetch <원격> | 원격 변경 가져오기 (병합X) |
| git pull <원격> <브랜치> | 원격 변경 가져오기 (병합O) | |
| git push <원격> <브랜치> | 로컬 커밋 원격으로 업로드 | |
| git push -u <원격> <브랜치> | 업스트림 설정 후 푸시 | |
| 병합 & 리베이스 | git merge <브랜치> | 다른 브랜치 병합 |
| git rebase <브랜치> | 커밋 히스토리 정리하며 병합 | |
| git cherry-pick <커밋ID> | 특정 커밋만 적용 | |
| 작업 되돌리기 | git restore <파일> | 변경 취소 (스테이징 전) |
| git reset <파일> | 스테이징 취소 | |
| git reset --hard <커밋> | 해당 커밋으로 강제 되돌리기 | |
| git revert <커밋> | 커밋 되돌리기 (새 커밋 생성) | |
| 태그 | git tag <태그명> | 특정 커밋에 태그 붙이기 |
| git push origin <태그명> | 태그 원격 푸시 | |
| 협업 (PR 관련) | git checkout -b feature/기능명 | 기능 개발용 브랜치 생성 |
| git push origin feature/기능명 | 내 브랜치 원격에 푸시 | |
| → GitHub에서 Pull Request 생성 | 원본에 반영 요청 |
5️⃣ 오늘의 성취 (회고)
오늘은 Git과 GitHub의 기초뿐 아니라 협업에서 가장 중요한 Fork & PR까지 정리했습니다.
특히 SSH 키 등록과 PR 올리기 과정을 직접 실습하면서 GitHub 협업의 핵심을 이해한 것이 가장 뿌듯합니다.
6️⃣ 어려웠던 점 & 개선
- SSH 키를 등록하지 않고 HTTPS로 접근하려다 인증 문제가 발생 → SSH로 해결 ✅
- PR 메시지를 어떻게 작성해야 할지 막막했음 → 앞으로는 커밋 메시지와 동일하게 짧고 명확하게 쓰는 습관 필요
7️⃣ 오늘 배운 것 (학습 정리)
- Git은 버전 관리 도구, GitHub은 협업 플랫폼이라는 차이
- SSH 키 등록의 중요성 (매번 비밀번호 입력 없이 보안성↑ 편의성↑)
- 협업 시 Fork & Pull Request가 필수적인 이유
8️⃣ 좋았던 점 & 아쉬운 점
- 👍 직접 해보니 **협업 흐름(Fork → 수정 → PR)**이 잘 이해됨
- 👎 아직 CI/CD 같은 GitHub Actions는 잘 활용 못함 → 추후 학습 예정
🌟 팁 & 복습 루틴
저장소를 여러 개 다룰 때는 SSH Key를 프로젝트별로 분리하면 충돌 방지 가능
커밋 메시지는 영어보다 한국어/영어 병행 작성 → 협업 시 가독성↑
매일 10분이라도 git log, git status 명령어를 확인하며 상태 파악 습관 들이기