Git Commands
목차
- 시작/설정
- 기본 흐름
- 푸시/풀
- 브랜치/병합
- 히스토리/되돌리기/응급처치
- 주요 문제 상황
push 했는데 “이미 up to date”인데 내 변경이 없을 때
- pull 하다 충돌났을 때
- 원격에 올린 커밋을 수정해야 할 때
- 참고
- 관련 문서
1. 시작/설정
- 저장소 만들기
git init (현재 폴더를 git 저장소로)
- 사용자 설정
git config --global user.name "NAME"
git config --global user.email "EMAIL"
git config --global -l (설정 확인)
2. 기본 흐름: 작업 → 스테이징 → 커밋
- 상태 확인
- 변경 내용 보기
git diff (작업트리 vs 스테이징 전)
git diff --staged (스테이징 vs 마지막 커밋)
- 스테이징
git add <file>
git add . (전체)
- 커밋
git commit -m "message"
git commit (에디터로 자세히)
- 마지막 커밋 수정
git commit --amend (메시지/내용 수정)
- 파일 추적 제외
.gitignore 작성 후 git add .gitignore
3. 원격(Remote) + 푸시/풀
- 원격 저장소 복제
- 원격 확인/등록
git remote -v
git remote add origin <url>
- 원격 브랜치/최신 반영(안 합침)
- 가져와서 합치기
git pull (= fetch + merge/rebase)
- 올리기
git push origin <branch>
- 최초 1회:
git push -u origin main
- 브랜치 이름 변경(요즘 main)
4. 브랜치/병합
- 브랜치 목록/생성
git branch
git branch <name>
- 브랜치 이동/생성+이동
git switch <name>
git switch -c <name> (생성+이동)
- 병합
git merge <branch> (현재 브랜치에 합침)
- 리베이스(히스토리 깔끔하게)
git rebase <base-branch>
- 충돌 시: 해결 →
git add . → git rebase --continue
5. 히스토리/되돌리기/응급처치
- 로그 보기(필수)
git log --oneline --graph --decorate --all
- 되돌리기 3종 세트 (상황별 선택)
- (A) “커밋을 취소하는 새 커밋”: 공유된 브랜치(원격)에 안전
- (B) “커밋 자체를 없애고 과거로”: 혼자 쓰는 브랜치에서만 권장
git reset --soft <commit> (커밋만 취소, add 상태 유지)
git reset --mixed <commit> (기본값, add 해제)
git reset --hard <commit> (작업물까지 삭제: 주의)
- (C) “잠깐 치우기” (브랜치 옮기기/풀 받기 전에)
6. 주요 문제 상황
6.1. push해서 “이미 up to date”인데 내 변경이 없을 때
- 보통 커밋이 없거나 다른 브랜치에 있음
1.
git status
2. git branch --show-current
3. git log --oneline -5
6.2. pull 하다 충돌났을 때
- 파일 열어서
<<<<<< 구간 해결 →
git add . →
(merge면) git commit / (rebase면) git rebase --continue
6.3. 원격에 올린 커밋을 수정해야 할 때
- 혼자 쓰는 브랜치면:
git commit --amend 후 git push --force-with-lease
- 협업 브랜치면: 웬만하면
revert로 처리
참고
관련 문서
Comments