본문 바로가기

카테고리 없음

자주 쓰는 GIT 명령어

1. 브랜치 관련 명령어

 

로컬 & 원격 브랜치 목록 확인

git branch        # 로컬 브랜치 목록 확인
git branch -r     # 원격 브랜치 목록 확인
git branch -a     # 로컬 + 원격 브랜치 목록 확인

 

브랜치 생성 & 전환

git checkout -b feature-branch   # 새 브랜치 생성 후 이동 (옛날 방식)
git switch -c feature-branch     # 새 브랜치 생성 후 이동 (새로운 방식)

 

 

브랜치 삭제

git branch -d feature-branch     # 로컬 브랜치 삭제 (병합된 브랜치만 삭제 가능)
git branch -D feature-branch     # 강제 삭제 (병합되지 않은 브랜치도 삭제)
git push origin --delete feature-branch  # 원격 브랜치 삭제

 

 

2. 커밋 관련 명령어

 

커밋 로그 보기

git log --oneline --graph --all --decorate  # 보기 편하게 로그 출력
git log -p                                  # 커밋별 변경 내용까지 출력

 

마지막 커밋 수정

git commit --amend -m "새로운 메시지"   # 마지막 커밋 메시지 수정

 

(아직 push하지 않았다면 문제없지만, 이미 push한 경우 강제 푸시 필요함)

git push origin 브랜치명 --force

 

3. 원격 저장소 관련

 

원격 저장소 연결 상태 확인

git remote -v
 

원격 저장소 변경

git remote set-url origin 새로운URL

 

 

4. 되돌리기 (Reset & Revert & Checkout)

 

특정 파일 변경 내용 버리기 (되돌리기)

git checkout -- 파일명   # 해당 파일의 변경 내용 취소
git restore 파일명       # checkout 대신 사용 가능 (새로운 방식)

 

특정 커밋으로 되돌리기 (하지만 히스토리는 유지)

git revert 커밋ID

 

특정 커밋까지 되돌리기 (히스토리까지 날려버림)
git reset --hard 커밋ID  # 해당 커밋 이후를 다 날림
git push origin 브랜치명 --force  # 원격 저장소도 강제 반영

(주의: reset --hard는 협업 중일 때 조심해서 사용해야 함!)

 

5. Stash (작업 저장 & 임시 보관)

 

현재 변경 사항을 임시로 저장

git stash

 

저장한 변경 사항 불러오기

git stash pop      # 가장 최근 stash 불러오기 + 삭제
git stash apply    # 가장 최근 stash 불러오기 (삭제 안 함)

 

stash 목록 확인 & 특정 stash 적용

git stash list
git stash apply stash@{1}  # 특정 stash 적용

 

6. Git Fetch vs Pull 차이

 

원격 저장소에서 최신 정보 가져오기 (병합 X)

git fetch

(이후 git merge origin/main 등을 실행해야 병합됨)

 

최신 변경 사항을 가져오면서 자동 병합

git pull

(fetch + merge를 한 번에 실행하는 것과 같음)

 

7. Conflict(충돌) 해결 후 강제 푸시

git push origin 브랜치명 --force-with-lease

(단순 --force보다 안전한 방식으로 충돌 해결 후 강제 푸시할 때 사용)

 

 

Git 활용 스킬

 

  • .gitignore 설정:
    불필요한 파일 (예: node_modules, .idea/, *.log, target/)을 Git에 포함시키지 않도록 설정.
  • Git Hooks 활용:
    pre-commit, pre-push 훅을 이용해 특정 코드 스타일을 강제할 수 있음.
  • Rebase를 활용한 깔끔한 커밋 히스토리 유지:
git rebase -i HEAD~3

 

(마지막 3개 커밋을 인터랙티브 모드로 수정 가능)

 

  • Tag를 이용한 버전 관리:
git tag -a v1.0 -m "Release v1.0"
git push origin v1.0