Git 기본 명령어
Git 기본 용어
- main : 깃의 기본 브랜치
- origin : 깃의 기본 원격 브랜치 별칭
- HEAD : 현재 작업 브랜치의 위치
Git 설정 명령
Git 기본 버전 관리 명령
- git init : 깃 저장소 생성
- git help [명령어] : 명령어 도움말 보기
- git status : 깃 버전 관리 상태 확인 (작업 디렉토리)
- git add : 버전 관리 파일 준비
- git add <파일명> ... : 특정 파일을 버전 관리 준비 (스테이징 영역)
- git add . : 해당 폴더의 모든 파일에 대해 버전 관리 준비 (스테이징 영역)
- git add -u : 커밋한 적이 있는 모든 파일 추가 (해당 파일이 커밋 이력에 있어야 함)
- git commit : 버전 관리 저장 (스냅샷, 해시 생성)
- git commit -m "메세지" : 깃 커밋하면서 메세지 저장
- git log : 버전 관리 이력 확인
- git log -숫자 : 숫자 개수만큼 로그 보기
- git log --pretty=online : 깃 커밋 로그를 한 줄로 보기
- git restore --staged [파일명] : 해당 파일을 Staging Area에서 제거. 파일 이름 대신 *을 치면 Staging Area가 비워짐
- git log --oneline : 커밋 이력을 한줄로 짧게 보여줌
staging area에서 삭제
- git rm --cached [파일명]
- git reset [파일명]
- git reset : 현재 폴더의 모든 폴더와 파일을 staging area에서 삭제
untracked 상태의 파일 또는 폴더 삭제
- git clean -f : 파일만 삭제
- git clean -fd : 파일과 폴더 모두 삭제
- git clean -fdx : 파일과 폴더 + .gitignore까지 삭제
- git clean -i : interactive mode로 삭제
파일의 삭제 및 이름 변경
파일을 추가할 때 뿐만 아니라 삭제하거나 이름을 변경하는 것도 이력에 남아야 하므로 이력을 관리하는 파일은 작업 폴더에서 삭제, 이름 변경하기 보다 git을 통해서 작업을 해야한다.
- git mv aaa.txt AAA.tx : aaa.txt를 AAA.txt로 이름 변경한다.
- git commit -m "rename aaa.txt to AAA.txt"
Git 버전 관리 되돌리기 명령
- git reset HEAD^ : 마지막 커밋을 스테이징 하기 전 상태로 작업 트리를 되돌리기
- reset의 3가지 옵션
- --soft : 해당 커밋 파일을 staging area에 저장. 즉 커밋하기 직전 상태로 변경
- --mixed : 해당 커밋의 파일을 작업 폴더에 저장. 즉 staging area로 add하기 직전 상태로 변경
- --hard : 해당 커밋의 파일을 작업 폴더에 반영
- git revert HEAD : 마지막 커밋을 되돌리면서 커밋 만들기 (최근 커밋의 반대)
커밋 이력보기
- git log : 커밋 아이디가 길게 나옴
- git log --online : 커밋 아이디가 짧게 나옴 (6자리)
- git shortlog : 커밋 아이디 안나옴
- git show [커밋 ID (6자리)]: 해당 커밋의 정보 보기
- git reflog : HEAD가 가리켰던(ref) 커밋의 변경이력(log)을 보여줌
- git reflog [브랜치명] : 브랜치별로 reflog를 보여줌
- git log -g : reflog를 상세히 보여줌
Git 브랜치 관련 명령
- git branch : 로컬 브랜치 보기
- git branch [브랜치명] : 로컬 브랜치 만들기
- git branch -d [브랜치명] : 해당 브랜치 삭제하기 (merge하지 않으면 내용 지워짐)
- git checkout [브랜치명] : 브랜치를 체크아웃하기 (작업 영역 변경)
- git checkout -b [브랜치명] : 브랜치를 만들면서 체크아웃 하기
- git merge [브랜치명] : 해당 브랜치를 현재 브랜치에 merge 하기
Git 고급 명령어
Git 충돌해결 방법
- 충돌 발생
- 2개의 브랜치 만들기
- 2개의 브랜치에서 같은 라인 수정하기
- 첫번째 브랜치를 메인 브랜치에 mereg
- 두번째 브랜치를 메인 브랜치에 merge 시도 -> 충돌
- 충돌 해결하기
- 충돌된 라인을 원하는 라인으로 수정
- add, commit
Git 원격 저장소 관련 명령
- git remote -v : 원격 저장소 정보 보기
- git clone "원격저장소 주소" : 원격 저장소를 로컬에 복제하기
- git remote add "원격저장소 별칭" "원격저장소 주소" : 원격 저장소를 등록하기
Git 원격 저장소 업데이트 명령
- git fetch : 원격 저장소 최신 내용을 받아오기 (merge하지 않음, 직접 merge 해야 함)
- git pull : 원격 저장소 최신 내용 받아와서 merge 하기
- git pull [원격저장소][원격브랜치] : 원격 저장소의 최신 내용을 받아와서 merge 하기
- git push [원격저장소][원격브랜치] : 원격 저장소로 내용을 밀어넣기
Git 추가 내용