깃의 3가지 상태
- Modified : 수정한 파일을 로컬 저장소에 커밋하지 않은 상태
- Staged : 수정한 파일을 곧 커밋할 것이라고 표시한 상태 (스테이징 영역에 올라가 있는 상태)
- Committed : 로컬 저장소에 반영된 상태
HEAD : 현재 브랜치의 마지막 스냅샷
origin : 원격 저장소의 별칭
master : master브랜치
생성
새로운 로컬 저장소 생성
- git init <project_name>
위 명령 실행시 .git 파일이 생성됨
원격 저장소에 등록
- git remote add origin <remote repository 주소>
저장소 가져오기
- git clone <URL>
확인
디렉토리 변경 사항 보기
- git status
작업 영역과 스테이징 영역/로컬 저장소의 차이 보기
- git diff
- git diff --cached
- git diff HEAD
- git diff <시작 지점>
- git diff <시작 지점> <끝 지점>
- git diff --stat <시작 지점> [<끝 지점>]
변경 이력 보기
- git log
추가 명령어
작업 영역 -> 스테이징 영역
- git add <파일 명>
ex)
git add .
git add *.txt
git add project/*/
작업 영역 -> 로컬 저장소
- git commit -m “<메시지>” -a
스테이징 영역 -> 로컬 저장소
- git commit -m "<메세지>"
로컬 저장소 -> 원격 저장소
- git push
기본 형식 : git push <원격저장소 명> <브랜치 명>
두 인자를 생략할 경우 origin master 가 생략 되어 있다고 볼 수 있다.
--delete 옵션 : 원격 저장소의 브랜치 삭제
가져오기 명령어
원격 저장소 -> 로컬 저장소
- git fetch
원격 저장소 -> 작업 영역
- git pull
기본 형식
git pull <원격 저장소 명> <브랜치명>
push와 마찬가지로 두 인자 생략 가능
- zip폴더 다운 : .git 폴더 없이 저장
- clone : .git 폴더 포함 저장
- pull : remote repository 내용을 local repository로 가져와 병합
- git fetch + git merge
- 해당 repository 권한이 있어야 한다.
git pull --rebase
fetch + merge가 아닌, fetch + rebase 방식으로 pull 진행
되돌리기 명령어
커밋 내용 재작성
- git commit --amend
ex)
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
빠뜨린 것이 있을 경우, 최근 커밋 내용을 수정하여 하나의 커밋으로 수정할 때 사용한다.
파일 상태를 Unstage로 변경하기
- git reset
ex)
git reset
git reset HEAD <파일 명>
git add 로 staggin area에 올린 파일 목록을 unstage 상태로 되돌릴 수 있다.
Modified 파일 되돌리기
- git checkout
working directory변경 사항을 되돌린다.
현재 변경 사항이 마음에 안들때 이전 상태로 되돌리는 용도로 사용될 수 있다.
이전 커밋 상태로 되돌리기
- git revert <커밋 번호>
working directory 파일을 해당 커밋 번호 상태로 되돌린다. (특정 파일 or 전체 파일)
References
'프로젝트 관리 > Git' 카테고리의 다른 글
서브 모듈(submodule) (0) | 2021.01.07 |
---|