깃 초기화
- 해당 디렉터리에서 깃을 사용할 수 있도록 초기화 해준다.
$ git init
깃 상태 확인
- 해당 디렉터리의 깃 상태를 확인할 수 있다.
$ git status
버전
- 버전은 문서를 수정하고 저장할 때마다 생기는 것으로 점차 쌓인다.
- 깃은 파일을 다른 이름으로 저장하지 않고, 만든 시간과 수정 내용까지 기록하여 저장한다.
- 깃은 버전마다 작업했던 내용을 확인할 수 있고, 그 버전으로 되돌아갈 수도 있다.
작업 트리
- 파일 수정, 저장 등의 작업을 하는 디렉터리로, 우리 눈에 보이는 디렉터리가 바로 작업 트리다.
스테이지
- 버전으로 만들 파일드리 대기하는 곳이다.
- 스테이징 영역(staging area)라고 부르기도 한다.
- 저장소와 함께 .git 디렉터리에 숨은 파일 형태로 존재한다.
스테이징
- 수정한 파일을 스테이지에 추가한다.
$ git add <File>
저장소
- 스테이지에 대기하고 있던 파일들을 버전으로 만들어 저장하는 곳이다.
- 리포지토리(repository)라고 부르기도 한다.
- 스테이지와 함께 .git 디렉터리에 숨은 파일 형태로 존재한다.
커밋
- 새로운 버전이 생성되면서 스테이지에 대기하던 파일을 저장소에 저장한다.
$ git commit
- -m 옵션을 붙이면 커밋과 함께 저장할 메시지를 적을 수 있다.
$ git commit -m "MESSAGE"
- -am (혹은 -a -m) 옵션을 붙이면 한 번 커밋한 파일에 한해서 스테이징과 커밋을 한꺼번에 처리할 수 있다.
$ git commit -am "MESSAGE"
$ git commit -a -m "MESSAGE"
- 가장 최근의 커밋 메시지를 수정할 수 있다.
- 명령어 입력시 기본 편집기가 실행된다.
$ git commit --amend
커밋 로그
- 저장소에 저장된 버전을 확인할 수 있다.
$ git log
- commit 항목에는 커밋 해시(commit hash)가 있다.
- commit 항목 마지막에 생길 수 있는 (HEAD -> master)는 이 버전이 가장 최신이라는 표시다.
- Author 항목에는 누가 만들었는지 나타낸다.
- Date 항목에는 버전이 언제 만들어졌는지 나타낸다.
- --oneline 옵션을 쓰면 한 줄에 한 커밋씩 나타내 주기 때문에 커밋을 간략히 확인할 수 있다.
$ git log --oneline
변경 사항 확인
- 작업 트리에 있는 파일과 스테이지에 있는 파일을 비교하거나, 스테이지에 있는 파일과 저장소에 있는 최신 커밋을 비교해서 수정한 파일을 커밋하기 전에 최종적으로 검토할 수 있다.
$ git diff
파일의 상태
- tracked file: 한 번이라도 커밋을 한 파일로, 수정 여부가 계속 추적되는 파일이다.
- untracked file: 한 번도 깃에서 버전 관리를 하지 않았기 때문에 수정 내역가 추적되지 않는 파일이다.
- unmodified: 파일이 커밋된 후, 수정되어 있지 않은 상태다.
- modified: 파일이 커밋된 후, 수정만 되어 있고 스테이지에 올라와 있지 않은 상태다.
- staged: 파일이 스테이지에 올라가 있는 상태다.
버전 관리에서 제외할 파일 지정하기
- 버전 관리 중인 디렉터리 안에 버전관리를 하지 않을 특정 파일 또는 디렉터리가 있다면 .gitginore 파일을 만들어 목록을 지정할 수 있다.
- 아래와 같이 .gitignore 파일의 내용을 작성하면 mynote.txt파일과 temp 디렉터리, 확장자가 .swp인 파일을 버전 관리에서 제외시킬 수 있다.
mynote.txt
temp/
.swp
작업 되돌리기
- 작업 트리에서 수정한 내용을 취소할 수 있다.
- 단, 되돌린 내용을 다시 복구할 수 없다.
$ git checkout -- <File>
스테이징 되돌리기
- 작업 되돌리기가 디렉토리에 있는 파일을 되돌렸다면, 스테이징 되돌리기는 스테이징을 취소하는 방법이다.
- HEAD 다음에 파일 이름을 지정하지 않으면 스테이지에 있는 모든 파일을 되돌린다.
$ git reset HEAD <File>
커밋 되돌리기
- 'HEAD^'를 사용하여 현재 HEAD가 가리키는 브랜치의 최신 커밋을 취소할 수 있다. (HEAD에 대한 내용은 3강에서)
- 커밋 해시를 사용하여 특정 커밋으로 되돌릴 수 있다.
- 최근 커밋을 하기 전 상태로 작업 트리를 되돌린다.
$ git reset --soft HEAD^
$ git reset --soft <되돌아갈 커밋 해시>
- 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌린다.
- 옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 작동한다.
$ git reset --mixed HEAD^
$ git reset HEAD^
$ git reset --mixed <되돌아갈 커밋 해시>
$ git reset <되돌아갈 커밋 해시>
- 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌린다.
- 이 옵션으로 되돌린 내용은 복구가 불가능하다.
$ git reset --hard HEAD^
$ git reset --hard <되돌아갈 커밋 해시>
- 커밋을 되돌리더라도 커밋을 남겨둘 수 있다.
- reset은 되돌아갈 커밋 해시를 지정하지만, revert는 취소할 커밋 해시를 지정한다.
$ git revert <취소할 커밋 해시>
'Study > Git' 카테고리의 다른 글
[Git] 5장. 깃허브로 협업하기 (0) | 2021.05.27 |
---|---|
[Git] 4장. 깃허브로 백업하기 (0) | 2021.05.23 |
[Git] 3장. 깃과 브랜치 (0) | 2021.05.22 |
[Git] 1장. 깃 시작하기 (0) | 2021.05.17 |