| 선행 작업
git에서 버전 관리를 하기 전에 가장 먼저 해줘야하는 것은 버전 관리할 폴더 내에 지역 저장소 .git을 만들어주는 것입니다. 저장소가 없다면 스테이징까지는 되어도 커밋이 되지 않으니, 필수적으로 해주고 넘어가 주세요.
여기서 만들어준 지역 저장소를 통해 추후 소개할 github의 원격 저장소를 통한 버전 관리를 진행하게 됩니다. 일종에 복사/붙여넣기 느낌이지요.
# 지역 저장소 생성
git init
| git에 버전 관리 단계
1. 작업 트리 // mkdir or vim 생성
# 디렉토리 생성(폴더 생성)
mkdir [원하는 폴더 이름]
# 디렉토리 삭제(폴더 삭제)
rm -rf [삭제할 폴더 이름]
# 텍스트 파일 생성
vim [원하는 파일 이름].txt
2. 스테이지 // git add
# 텍스트 파일을 스테이지에 올릴 시
git add [파일이름].txt
# 폴더를 스테이지에 올릴 시, (빈 폴더의 경우 add가 안됨)
git add ./[폴더이름]/
# 현재 위치에 모든 파일을 스테이지 올릴 시
git add -A
3. 저장소 // git commit
# 커밋만 단독으로 실행시
git commit -m "커밋 메시지"
# 스테이지에 올리고 커밋을 바로 실행시, (단, 이 경우 첫 파일은 불가함)
git commit -am "커밋 메시지"
# 이미 실행한 커밋의 메시지 변경
git commit --amend
| 저장소 안에 폴더별로 커밋을 하고 싶다면
(1) 지역 저장소에 폴더를 만든다.
(2) 해당 폴더 안에 파일을 생성한다.
(3) 해당 폴더에서 생성한 파일을 git add [파일명] 해준다.
(4) git commit으로 해당 파일을 수행한다.
(5) git push를 통해 원격 저장소에 올린다.
| git status 단계
| git 전체 단계
| 자주 마주치는 용어
Changes not staged for commit:
변경된 파일이 아직 스테이지에 올라가지 않았습니다.
Untracked files:
hello2.txt 파일은 한 번도 깃에서 버전 관리를 하지 않았기 때문에 수정 내역을 추적하지 않습니다.
| git checkout 과 git restore의 차이
차이는 없습니다. 둘 모두 수정내용 되돌리기 기능을 제공합니다. 단지 git 2.23 버전부터 git checkout 명령어가 git restore로 대체되었습니다. 따라서 이전 버전으로 작성된 책에서는 checkout이라고 표시되어 있을 터인데, restore로 대체하셔서 이해하시면 되겠습니다.
# 변경 전
git checkout -- hello.txt
# 변경 후 git version 2.23 이후
git restore -- hello.txt
| git reset 과 git restore의 차이
git 2.23 버전까지는 스테이지 되돌리기시 git reset이라는 명령어를 따로 사용했었지만, 버전 업데이트 이후 수정내용 되돌리기와 동일한 명령어인 git restore로 통일되었습니다. 단, 수정내용 되돌리기시에는 다른 조건이 없었으나 이번에는 --staged라는 조건이 추가되었습니다.
# 변경 전
git reset HEAD hello2.txt
# 변경 후 git version 2.23 이후
git restore --staged hello2.txt
| 최신 커밋 되돌리기: git reset HEAD^
git reset HEAD^
| git reset 명령의 옵션
명령 | 설명 |
--soft HEAD^ | 최근 커밋을 하기 전 상태로 작업 트리를 되돌립니다. (복구 가능) |
--mixed HEAD^ | 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌립니다. 옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 작동합니다. |
--hard HEAD^ | 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌립니다. 이 옵션으로 되돌린 내용은 복구할 수 없습니다. |
| 커밋 해시란?
git log 입력시 각 로그의 위치 값을 나타내는 문자열을 의미합니다.
git reset --hard [해시값]
위 명령어 사용시 해당 해시값 이후 커밋은 삭제되고, 해당 커밋 해시로 되돌립니다.
| 커밋 해시를 삭제하지 않고 되돌리기: git revert
git revert [현재 해시값]
| 명령어에 대한 메뉴얼 보기: git [명령어] --help
| 참고 문헌
지옥에서 온 문서 관리자 깃 & 깃허브 입문, 이고잉, 고경희 지음, 이지스 퍼블리싱, 2019.12.06
'코딩 | 개념 정리 > Git & GitHub' 카테고리의 다른 글
git 무료 참고 도서 (0) | 2021.07.13 |
---|---|
GIT 기초 사용법 2_브랜치 (0) | 2021.07.13 |
[Git] git add 에러 메시지 (0) | 2021.07.05 |
Github 디렉토리, repositories 삭제하는 방법 (0) | 2021.02.15 |
Git 기본 명령어 모음 (0) | 2021.02.13 |