깃 공부를 많이 했지만, 실제로 오픈소스 기여를 위해서 사용할 때가 되면 당황스럽다.
0. 가장 중요한 Git 구조
이걸 먼저 머리에 넣어야 합니다.
upstream
=
원본 저장소
origin
=
내 fork 저장소
local
=
내 컴퓨터
흐름:
원본 저장소(upstream)
↓ fork
내 GitHub(origin)
↓ clone
내 로컬(local)
1. 가장 자주 쓰는 실무 Workflow
이게 진짜 핵심입니다.
# 최신 main 가져오기
git switch main
git fetch upstream
git merge upstream/main
git push origin main
# 작업 브랜치 생성
git switch -c feature/something
# 작업 후
git add .
git commit -m "Fix something"
# 내 fork에 push
git push -u origin feature/something
# GitHub에서 PR 생성
이게 OSS/실무 표준 흐름입니다.
2. 브랜치 관련
현재 브랜치 확인
git branch
사용 빈도:
매우 높음
브랜치 이동
git switch 브랜치명
예:
git switch main
사용 빈도:
매우 높음
새 브랜치 생성 + 이동
git switch -c feature/login
사용 시기:
새 기능 작업 시작
실무 중요도:
매우 중요
브랜치 삭제
git branch -D 브랜치명
예:
git branch -D feature/login
사용 시기:
merge 완료 후 정리
3. 상태 확인
현재 상태 확인
git status
진짜 중요합니다.
거의:
"불안하면 status"
입니다.
사용 빈도:
매우 매우 높음
변경 내용 보기
git diff
사용 시기:
commit 전 확인
4. Commit 관련
파일 stage
git add .
또는:
git add src/main.rs
commit
git commit -m "Fix scaler calculation"
commit 메시지 예시:
Fix ...
Add ...
Refactor ...
Update ...
Remove ...
마지막 commit 수정
git commit --amend
사용 시기:
오타 수정
파일 빠짐
commit message 수정
실무에서 엄청 많이 씀.
5. Push / Pull
내 fork로 push
git push origin 브랜치명
예:
git push origin feature/rexpaint
upstream 연결 포함 push
git push -u origin feature/rexpaint
의미:
앞으로 이 브랜치 tracking
추천:
새 브랜치 첫 push 때 항상 사용
6. Fetch / Merge
원본 최신 정보 가져오기
git fetch upstream
안전합니다.
다운로드만 함
upstream main 병합
git merge upstream/main
현재 브랜치에 최신 main 반영.
7. Reset (중요)
soft reset
git reset --soft HEAD~1
효과:
commit만 취소
코드 유지
실무 사용:
매우 많음
hard reset
git reset --hard HEAD~1
효과:
commit 삭제
코드도 삭제
주의:
위험함
브랜치를 upstream/main 상태로 초기화
git reset --hard upstream/main
사용 시기:
브랜치 꼬였을 때
8. Force Push
강제 push
git push --force-with-lease
사용 시기:
reset 후
rebase 후
commit amend 후
중요:
개인 feature branch에서만
9. Log / History
간단한 로그
git log --oneline
브랜치 구조 보기
git log --oneline --graph --decorate -10
엄청 중요합니다.
Git 이해가 빨라집니다.
10. Remote
remote 확인
git remote -v
예:
origin
upstream
확인.
upstream 추가
git remote add upstream 원본URL
11. Cherry-pick
특정 commit만 가져오기
git cherry-pick 커밋ID
사용 시기:
깨끗한 브랜치로 commit 이동
실무 중요도:
높음
12. Rebase
최신 main 기준으로 정리
git rebase upstream/main
효과:
commit을 최신 main 위로 재배치
실무에서 매우 중요.
하지만 처음엔 merge workflow부터 익숙해지는 걸 추천.
13. PR 실무 핵심
절대 main에서 직접 작업하지 않기
항상:
git switch -c feature/...
PR 단위 작게
좋은 PR:
Fix one thing
나쁜 PR:
20개 기능 섞임
commit보다 PR diff가 중요
maintainer는:
최종 diff
를 주로 봅니다.
14. 진짜 실무 필수 TOP 10
이건 거의 매일 씁니다.
git status
git switch
git switch -c
git add .
git commit -m
git push
git push -u
git fetch
git merge
git log --oneline --graph
15. OSS 기여 핵심 Workflow (최종)
# 최신화
git switch main
git fetch upstream
git merge upstream/main
git push origin main
# 브랜치 생성
git switch -c feature/something
# 작업
git add .
git commit -m "Fix something"
# push
git push -u origin feature/something
# GitHub PR
이 흐름만 몸에 익으면:
GitHub OSS contributor workflow
의 80%는 이미 익힌 겁니다.
'Deployment > GitHub' 카테고리의 다른 글
| Github Actions (1) | 2026.05.05 |
|---|---|
| Learn Git Branching (2) remote (0) | 2026.05.01 |
| GitHub Skills (0) | 2026.04.30 |
| Learn Git Branching (1) main (0) | 2026.04.30 |
| 버전 관리와 깃(Git) (0) | 2025.12.01 |