
작업을 마칠때마다 그 시점에 만들어진 결과물을 저장해 하나의 파일 또는 지점을 만들어놓고 원할때 이동하거나 수정 등 다양한 작업을 진행할 수 있도록 서버와 클라언트 모두에 동일한 내용을 백업해서 관리하게 해주는 분산 버전관리 시스템(DVCS)의 대표 서비스이다.
git init : git가 내부적으로 코드의 상태이력을 저장하기 위한 영역을 위해 숨겨진 .git 파일 생성git는 코드의 상태이력을 데이터베이스와 같은 시스템을 이용하지 않고 자체적인 파일로 저장한다.
git status : 명령어를 입력하면 스테이징의 상태를 확인가능git는 스테이징라는 영역이 있는데, 스테이징는 임시 영역으로 작업한 컨텐츠의 실제 파일 내용은 직접 가지고 있지 않다. commit를 빠르게 하기 위해서 스테이지 영역을 이용한다.
스테이징 영역은 크게 Untracked, Tracked 두 가지 상태로 나뉘는데 파일을 새로 만들 경우 Untracked상태가 되는데 이는 git가 해당 파일을 추적(관리)하지 않고 있는 상태를 말합니다.
git add 파일명 : 파일을 추적상태로 만듬git add . : 전체 파일을 추적상태로 만듬git rm : git에서 파일을 삭제하고 실제 디스크에서도 파일을 삭제함git rm --cached 파일명 : git에서 추적만 중단하고, 로컬에는 파일을 그대로 둠git reset : 전체 추적 불가.gitignore : 안에 파일명을 넣으면 추적불가 상태로 만들 수 있음 (!not_ignore_this. : 추가시 this. 파일은 추적 logs : logs 라는 이름의 파일/폴더와 그 내용들을 추적불가logs/ : logs 라는 이름의 폴더와 그 내용들을 추적불가현재 확인 가능한 스테이지의 파일들은 commit 명령어를 이용해 하나의 버전으로 만들기 가능합니다.
이는 현재의 상황을 사진으로 찍어 보관하는 것과 같다고 생각하면 좋습니다.
git commit -m "메세지" : 메모같은 느낌
git commit -am "메세지" : 새로 추가된 파일 없이 변경과 삭제 작업만 진행시 add와 commit를 한번에 진행가능
git commit : vim 편집기 나옴

git log 자주 사용하는 옵션 정리표| 용도 | 명령어 | 설명 |
|---|---|---|
| 기본 커밋 로그 | git log | 사용했던 commit로그를 보여줍니다 |
| 각 커밋마다의 변경사항 보기 | git log -p | 커밋마다 어떤 코드가 변경되었는지(diff)를 함께 보여줍니다 |
| 최근 n개 커밋만 보기 | git log -n <갯수> | 최근 지정한 개수만큼의 커밋 로그를 출력합니다 |
| 통계와 함께 보기 | git log --stat | 커밋마다 파일 변경 개수, 줄 수 변경 등을 통계로 보여줍니다 |
| 한 줄 요약 보기 | git log --oneline | 각 커밋을 짧은 해시와 커밋 메시지로 한 줄씩 출력합니다 |
| 변경사항 내 단어 검색 | git log -S <검색어> | 커밋 내 실제 코드 변경 내용 중 특정 문자열을 검색합니다 |
| 커밋 메시지로 검색 | git log --grep "<검색어>" | 커밋 메시지에 포함된 문자열로 검색합니다 |
| 그래프로 보기 (자주 사용) | git log --all --decorate --oneline --graph | 브랜치, 병합 등 히스토리를 그래프 형태로 한 줄 요약하여 출력합니다 |
문제 : git commit 를 사용했는데 정상작동 되지 않음
원인 : 각 파일을 저장하지 않고 git add . 을 실행했기 때문으로 생각됨

해결방법 : 각 파일을 저장하고 git add . 을 사용 후 다시 git commit 를 사용
