학습 / 치트 시트
테스터를 위한 Git 치트 시트
개발자와 함께 테스트 프레임워크를 작업할 때 테스터에게 필요한 Git 명령어입니다. 브랜치를 만들고, 커밋하고, main의 변경을 따라가고, 작업을 잃지 않고 실수를 되돌리고, 버그를 만든 커밋을 찾아냅니다. 작업 내용을 버리는 명령어는 따로 표시했습니다.
Git 2.40 이상 기준으로 검증
초기 설정
| 작업 | 코드 |
|---|---|
| 사용자 정보 | git config --global user.name "Mei Lin" git config --global user.email "mei@example.com" |
| 기본 브랜치 이름 | git config --global init.defaultBranch main |
| 저장소 클론 | git clone https://github.com/org/tests.git |
| pull 시 기본으로 rebase | git config --global pull.rebase true |
일상 작업
| 작업 | 코드 |
|---|---|
| 무엇이 바뀌었나? | git status |
| 현재 위치에서 새 브랜치 만들기 | git switch -c fix/login-flaky-wait |
| 파일 스테이징 | git add tests/login.spec.ts |
| 파일 일부만 스테이징 | git add -p |
| 커밋 | git commit -m "Wait for login response instead of sleep" |
| 새 브랜치 푸시 | git push -u origin fix/login-flaky-wait |
| 최신 변경 사항 가져오기 | git pull |
| 브랜치 전환 | git switch main |
살펴보기
| 작업 | 코드 |
|---|---|
| 간결한 히스토리 | git log --oneline --graph --decorate -20 |
| 파일 하나의 히스토리 | git log --follow -p -- tests/login.spec.ts |
| 스테이징 안 된 변경 사항 | git diff |
| 스테이징된 변경 사항 | git diff --staged |
| 내 브랜치와 main 비교 | git diff main...HEAD |
| 커밋 하나 보기 | git show 3f2a9c1 |
| 이 줄을 누가 바꿨나 | git blame -L 20,40 tests/login.spec.ts |
| 모든 브랜치 | git branch -a |
main 따라가기
| 작업 | 코드 |
|---|---|
| 파일은 그대로 두고 내려받기 | git fetch origin |
| 내 커밋을 main 위에 다시 적용 | git rebase origin/main |
| 또는 main을 내 브랜치에 병합 | git merge origin/main |
| 충돌을 해결한 뒤 | git add <file> then git rebase --continue |
| rebase 중단 | git rebase --abort |
| rebase한 브랜치를 안전하게 푸시 | git push --force-with-lease |
| 커밋 하나를 이 브랜치로 복사 | git cherry-pick 3f2a9c1 |
자신의 브랜치만 rebase하세요. --force-with-lease는 다른 사람이 푸시한 커밋을 덮어쓰지 않도록 거부합니다.
되돌리기
| 상황 | 명령어 |
|---|---|
| 파일 수정 내용 버리기 (내용이 사라짐) | git restore tests/login.spec.ts |
| 스테이징만 취소하고 수정 내용은 유지 | git restore --staged tests/login.spec.ts |
| 마지막 커밋 메시지 수정 또는 파일 추가 | git commit --amend |
| 마지막 커밋 취소, 변경 사항은 스테이징 상태로 유지 | git reset --soft HEAD~1 |
| 푸시한 커밋 되돌리기 (새 커밋 추가) | git revert 3f2a9c1 |
| 로컬 변경 사항 모두 버리기 (내용이 사라짐) | git reset --hard HEAD |
| "잃어버린" 커밋 찾기 | git reflog |
공유 브랜치에서는 revert를 쓰세요. reset과 amend는 히스토리를 다시 쓰기 때문에 다른 사람들이 모두 자기 복사본을 고쳐야 합니다.
작업 임시 보관
| 작업 | 코드 |
|---|---|
| 변경 사항 stash | git stash push -m "half-done locator refactor" |
| 추적되지 않는 파일도 포함 | git stash push -u |
| stash 목록 | git stash list |
| 최신 stash 적용 후 삭제 | git stash pop |
문제를 일으킨 커밋 찾기
| 작업 | 코드 |
|---|---|
| 시작 | git bisect start |
| 현재 커밋을 bad로 표시 | git bisect bad |
| 정상으로 알려진 커밋을 good으로 표시 | git bisect good v2.3.0 |
| 각 단계를 테스트가 판정하게 하기 | git bisect run npx playwright test tests/checkout.spec.ts |
| 종료하고 원래 상태로 복귀 | git bisect reset |
bisect run은 종료 코드 0을 good, 1–127을 bad로 처리합니다(125는 해당 커밋을 건너뜀).