[Git] 명령어 정리
최근 GitLab에 대해서 공부하면서 Git 명령어에 대해서 공부해보았다.
명령어를 공부하면 할수록 내용이 많아서 직접 다양한 명령어를 사용해보면서 익숙해져야 할 것 같다.
- GitLab 명령어 정리
- 작업 디렉토리 변경 내용의 일부만 넘기고 싶을 때 수정한 파일 or 디렉토리 경로를 넘김
$ git add [파일 디렉토리 경로]
- 현재 디렉토리 모든 변경 내용을 Staging Area 로 넘기고 싶은 경우
$ git add .
- 각 변경 사항을 터미널에서 직접 눈으로 확인하면서 넘기고 싶은 경우
$ git add -p
- git 의 현재 상태를 확인 , Staging Area, UnStage Area 에 있는 파일 및 Untracked 상태의 파일 확인이 가능
$ git status
- commit 된 파일상태와 현재 수정중인 상태 비교
$ git diff
- com mit 된 파일상태와 add 된 파일 상태 비교
$ git diff --staged
- commit 메시지 메시지명 을 붙여서 commit
$ git commit -m "[메시지명]"
- 메시지 메시지명 을 붙여서 Staging 과 commit 을 동시에 진행
$ git commit -a -m “[메시지명]"
- 마지막 commit 되돌리고, 수정 후 다른 commit으로 반영 (~뒤 숫자는 되돌릴 commit 개수)
$ git reset --soft HEAD~1
- 수정사항을 마지막 commit과 합치는 경우, 가장 최근의 commit이 수정되면서 내용이 합쳐짐
$ git commit --amend
- Staged 상태의 파일을 Unstage로 변경
$ git reset
- Staging area가 초기화되고 working tree를 특정 커밋시점으로 덮어쓰기
$ git reset --hard [commit]
- 파일 삭제
$ git rm [파일명]
- 파일/폴더명 변경
$ git mv [기존 파일명] [변경 파일명]
- git 저장소에서 추적하지 않는 파일들을 삭제
$ git clean
- branch 생성
$ git branch [브랜치명]
- branch 목록 조회 (*표시된 branch가 현재 branch)
$ git branch
- 원격 branch 목록 조회
$ git branch –r
- 전체 branch 목록 조회
$ git branch –a
- 해당 branch 선택
$ git checkout [브랜치명]
- branch 생성 후 해당 branch 선택
$ git checkout –b [브랜치명]
- 특정 branch를 현재 Checkout된 branch에 merge
$ git merge [브랜치명]
- branch 목록 (병합된 branch는 *표시)
$ git branch --merged
- 병합하지 않은 브랜치 조회
$ git branch --no-merged
- 특정 branch만 clone하고 싶을 때
$ git clone –b [브랜치명] –single-branch [원격 HTTPS 주소]
- 커밋 히스토리를 시간 순으로 조회
$ git log
- 최근 number개만 노출
$ git log –[number]
- 로그를 한줄로 약식으로 보여줌
$ git log --oneline
- 로그를 한줄 그래프 형식으로 보여줌
$ git log --online --graph
- 브랜치가 어떤 커밋을 가리키고 있는지 확인 가능함
$ git log --oneline --graph --all --decorate
- 로컬 저장소에 있는 것을 뺀 remote 저장소의 모든 것을 가져옴
$ git fetch [remote]
- remote저장소에 지워진 브랜치를 local 반영하여 local의 불필요한 브랜치를 삭제
$ git fetch --prune
- remote의 commit을 가져오고 병합 (git fetch, git merge 명령을 순서대로 진행하는 것과 동일)
$ git pull
- 특정 branch만 pull 할 때
$ git pull origin [브랜치명]
- 로컬저장소의 commit 내역을 remote 저장소로 전송
$ git push [remote] [브랜치명]
- 현재 프로젝트에 등록된 remote 저장소 확인
$ git remote
- 원격 저장소 url 확인 (fetch, push 정보)
$ git remote –v
- git url에 remote(저장소) 이름으로 등록
$ git remote add [remote] [url]
- 변경된 내용 임시 저장
$ git stash
- 임시 저장 목록 조회
$ git stash list
- 임시 저장 내용 확인 (상세 내용은 뒤에 –p 붙임)
$ git stash show
- stash 내용 가져오고 리스트에 유지
$ git stash apply
- stash 내용 꺼내오고 리스트에서 제거
$ git stash pop
- 최근에 저장한 stash 삭제
$ git stash drop
- 임시 저장 내역 전체 삭제
$ git stash clear
- 모든 태그 조회
$ git tag
- 원격저장소에 있는 태그 조회
$ git ls-remote --tags
- 태그 종류
Lightweight : 단순히 버전 같은 태그 이름만 남김
Annotated : 태그 만든 사람의 이름, 이메일, 태깅 날짜, 메시지까지 저장
- Lightweight 태그 생성
$ git tag [태그명]
- Annotated 태그 생성
$ git tag –a [태그명] –m “[메시지]”
- 로컬저장소 태그 삭제
$ git tag –d [태그명]
- 로컬저장소 내 전체 태그 삭제
$ git tag –d $(git tag –l)
- 원격저장소 태그 삭제
$ git push --delete [remote] [태그명]
- 원격저장소 내 전체 태그 삭제
$ git push [remote] --delete $(git tag –l)
- 태그를 원격저장소에 push하기
$ git push [remote] [태그명]
- 모든 태그를 한번에 push하기
$ git push origin --tags