Git 기본 개념 및 용어
- Working Tree: 파일을 수정하고 작업하는 공간, 아직 Git 버전 관리에 포함되지 않은 상태
- Staging Area: 커밋하기 위해 파일을 준비해 두는 공간, 여기에서 추가된 파일은 곧 버전으로 저장됨
- Repository: 모든 커밋(버전)이 저장된 공간, 프로젝트의 모든 이력을 관리
파일 및 폴더 관리 명령어
- 폴더 생성:
mkdir 폴더이름 - 지정한 이름으로 새 폴더 생성
- 파일 생성/수정:
nano 파일이름.txt - 지정한 텍스트 파일을 생성하거나 내용을 수정
- 파일 내용 확인:
cat 파일이름 - 지정한 파일의 내용을 화면에 출력
Git 상태 및 변경 사항 확인
- Git 상태 확인:
git status - 현재 작업 중인 파일들의 상태를 표시
- 버전 관리 대상 추가:
git add 파일이름 - 수정된 파일을 Staging Area에 추가해 커밋 준비를 완료
- 커밋 생성:
git commit -m "커밋 메시지" - Staging Area에 올라간 파일을 커밋해 새로운 버전을 만듦
- 커밋 로그 확인:
git log - 프로젝트의 커밋 히스토리 확인
- 상세 커밋 로그:
git log --stat - 각 커밋에 포함된 파일과 수정한 라인 수를 확인
- 마지막 버전과 비교:
git diff - 현재 수정된 파일이 마지막 커밋과 다른 점을 보여줌
파일 상태 및 주요 용어
- Modified: 버전 관리 중인 파일로, 수정되었으나 아직 Staging Area에 올라가지 않은 상태
- Untracked files: 처음 Git으로 관리되기 전의 파일로, Git이 인식하지 못하는 상태
- 공통점: 두 상태 모두 Staging Area에 추가되지 않아
git add 명령어를 통해 관리 대상에 포함시켜야 함
Git 커밋을 되돌리는 방법
- 기본 리셋:
git reset --hard - 마지막 버전으로 돌아가며, 이후 모든 작업 내역을 삭제
- 특정 버전으로 이동:
git checkout 커밋ID - 특정 커밋 ID를 입력해 해당 시점의 버전으로 이동
- 최신 상태로 복구:
git checkout master - 최신 버전으로 다시 돌아옴
기타 유용한 Git 명령어
- 모든 파일 추가:
git add . - 현재 디렉토리 내 모든 파일을 Staging Area에 올림
- 자동 커밋 및 추가:
git commit -am "커밋 메시지" - git add와 git commit을 동시에 수행
- 주의:
git commit -am은 기존에 한 번이라도 커밋된 파일에만 작동하며, 새로 추가된 파일은 직접 git add를 실행해야 함
- 에디터 변경:
git config --global core.editor "nano" - 기본 에디터를 nano로 변경
커밋 삭제 및 취소
- 강력한 리셋:
git reset --hard 커밋ID - 지정한 커밋으로 되돌아가며, 이후 모든 커밋 및 수정사항이 삭제됨
- Soft/Mixed 리셋:
git reset --soft 또는 git reset --mixed - 지정 커밋으로 돌아가지만, 작업 파일은 그대로 유지
- Revert 사용:
git revert - 특정 커밋을 되돌리지만, 새 커밋으로 추가해 변경 이력을 남김