버전 관리를 위한 필수 Git 명령어 – 브랜치, 커밋, 병합 및 협업.
Git을 구성하고 사용자 정보를 설정합니다
# 이름과 이메일 설정
git config --global user.name "당신의 이름"
git config --global user.email "your.email@example.com"
# 설정 확인
git config --list
# 기본 브랜치 이름 설정
git config --global init.defaultBranch main# 기본 편집기 설정
git config --global core.editor "code --wait"
# 색상 출력 활성화
git config --global color.ui auto
# 자격 증명 도우미 설정 (Windows)
git config --global credential.helper wincredGit 리포지토리를 초기화하거나 복제합니다
# 새 리포지토리 초기화
git init
# 특정 브랜치 이름으로 초기화
git init -b main
# 기존 리포지토리 복제
git clone https://github.com/user/repo.git
# 특정 디렉터리로 복제
git clone https://github.com/user/repo.git my-folder일상적인 Git 사용을 위한 일반 명령
# 리포지토리 상태 확인
git status
# 파일을 스테이징 영역에 추가
git add file.txt
git add . # 모든 파일 추가
git add *.js # 모든 JavaScript 파일 추가
# 변경 커밋
git commit -m "Commit message"
git commit -am "Message" # 추적된 파일 추가 및 커밋
# 커밋 히스토리 보기
git log
git log --oneline # 간결한 보기
git log --graph # 브랜치 그래프 표시브랜치를 생성하고 관리합니다
# 브랜치 목록
git branch # 로컬 브랜치
git branch -a # 모든 브랜치 (로컬 + 원격)
# 새 브랜치 생성
git branch feature-branch
# 브랜치 전환
git checkout feature-branch
git switch feature-branch # 최신 대안
# 새 브랜치 생성 및 전환
git checkout -b feature-branch
git switch -c feature-branch# 현재 브랜치에 브랜치 병합
git merge feature-branch
# 브랜치 삭제
git branch -d feature-branch # 안전하게 삭제
git branch -D feature-branch # 강제 삭제
# 브랜치 이름 변경
git branch -m old-name new-name원격 리포지토리를 다룹니다
# 원격 리포지토리 목록
git remote -v
# 원격 리포지토리 추가
git remote add origin https://github.com/user/repo.git
# 원격에서 변경 가져오기
git fetch origin
# 원격에서 변경 풀
git pull origin main
# 원격에 변경 푸시
git push origin main
git push -u origin main # 업스트림 설정 및 푸시# 원격 삭제
git remote remove origin
# 원격 이름 변경
git remote rename old-name new-name
# 원격 URL 변경
git remote set-url origin https://github.com/user/new-repo.git변경을 되돌리거나 리셋합니다
# 작업 디렉터리의 변경 사항 버리기
git restore file.txt
git checkout -- file.txt # 이전 방식
# 파일 스테이징 해제
git restore --staged file.txt
git reset HEAD file.txt # 이전 방식
# 마지막 커밋 수정
git commit --amend -m "New message"
# 커밋 되돌리기 (새 커밋 생성)
git revert <commit-hash># 이전 커밋으로 리셋 (주의!)
git reset --soft HEAD~1 # 변경 사항을 스테이징 상태 유지
git reset --mixed HEAD~1 # 변경 사항을 스테이징되지 않은 상태 유지
git reset --hard HEAD~1 # 모든 변경 사항 버리기
# 특정 커밋으로 리셋
git reset --hard <commit-hash>변경 사항을 일시적으로 저장합니다
# 현재 변경 사항 스태시
git stash
git stash save "Work in progress"
# 스태시 목록
git stash list
# 스태시 적용
git stash apply # 스태시 유지
git stash pop # 적용 후 스태시 삭제
# 특정 스태시 적용
git stash apply stash@{0}
# 스태시 삭제
git stash drop stash@{0}
git stash clear # 모든 스태시 삭제차이점과 히스토리를 검사합니다
# 스테이징되지 않은 변경 사항 표시
git diff
# 스테이징된 변경 사항 표시
git diff --staged
git diff --cached
# 커밋 간 변경 사항 표시
git diff commit1 commit2
# 특정 파일의 변경 사항 표시
git diff file.txt# 커밋 상세 보기
git show <commit-hash>
# 특정 커밋의 파일 보기
git show <commit-hash>:file.txt
# 파일에서 누가 무엇을 변경했는지 보기
git blame file.txt버전 태그를 생성하고 관리합니다
# 태그 목록
git tag
# 경량 태그 생성
git tag v1.0.0
# 주석이 있는 태그 생성
git tag -a v1.0.0 -m "Version 1.0.0"
# 특정 커밋에 태그
git tag -a v1.0.0 <commit-hash> -m "Message"
# 원격에 태그 푸시
git push origin v1.0.0
git push origin --tags # 모든 태그 푸시
# 태그 삭제
git tag -d v1.0.0
git push origin --delete v1.0.0추가적인 유용한 Git 명령
# 추적되지 않은 파일 정리
git clean -n # 실제 실행 없이 확인
git clean -f # 파일 삭제
git clean -fd # 파일 및 디렉터리 삭제
# 리포지토리 검색
git grep "search term"
# 파일 변경자를 표시
git log --follow file.txt
# 별칭 생성
git config --global alias.st status
git config --global alias.co checkout# 파일 변경 무시
git update-index --assume-unchanged file.txt
# 파일 변경 다시 추적
git update-index --no-assume-unchanged file.txt
# 추적된 파일 표시
git ls-files