최신수정일 | 22.02.14 |
왜 명령어를 다시 정리하냐면.
실무와 팀프로젝트에서 본격적으로 깃을 통한 협업이 들어가는데 개인 레포지토리를 관리할 때랑은 알아야 할-자주 쓸 명령어가 따로있다. 따라서 경험상 필수적인 명령어 위주로 나 좋으라고 다시 정리한다.
지속적으로 추가 예정
진짜 완전 기본 명령어
명령어 | 설명 |
$ git clone [원격/로컬 경로] | 작업할 레포지토리 이리와라, (origin이란 리모트 저장소 자동 등록) |
$ git add [파일경로] | - [파일경로]에 해당하는 [변경파일]만 스테이징 |
$ git add . | - 모든 [변경파일]을 스테이징 |
$ git commit -m "[메시지내용]" | 커밋 생성, 커밋내용 확정 |
$ git push | 커밋 전송 |
더 디테일한 기본 명령어
명령어 | 설명 |
$ git commit -m "[메시지]" --amend | 마지막 커밋 내용 수정 |
브랜치 관련 명령어
명령어 | 설명 |
$ git branch | 로컬저장소의 브랜치 목록 보기 |
$ git branch [브랜치 이름] | [브랜치이름] 생성 |
$ git checkout [브랜치 이름] | [브랜치이름]으로 이동 |
$ git checkout -b [브랜치 이름] | [브랜치이름] 생성과 동시에 이동 |
$ git branch -d [브랜치 이름] | [브랜치이름] 삭제, 삭제할 브랜치가 현재 브랜치에 Merge되었을 때만 |
$ git branch -D [브랜치 이름] | [브랜치이름] 삭제, merge 여부 상관없이 |
$ git push origin [브랜치 이름] | 만든 브랜치를 원격 저장소에 전송 || [브랜치이름]에 커밋 전송 |
$ git merge [브랜치 이름] | [브랜치 이름]를 가져와서 합치기, 현재 브랜치로 Merge |
$ git merge --abort | merge 취소하기 |
더 디테일한 브랜치 명령어
명령어 | 설명 |
$ git branch -r | 원격저장소의 브랜치 목록 보기 |
$ git branch -a | 로컬저장소, 원격저장소의 모든 브랜치 목록 보기 |
$ git branch [브랜치 이름] | 새로운 [브랜치이름] 생성, 생성지점: 현재 브랜치 |
$ git branch [브랜치 이름1] [브랜치 이름2] | 새로운 [브랜치 이름1] 생성, 생성지점: [브랜치 이름2] |
$ git branch -f [브랜치 이름1] [브랜치 이름2] | [브랜치 이름1]에서 [브랜치 이름2]로 덮어쓰기 |
$ git checkout -m [브랜치 이름1] [브랜치 이름2] | [브랜치 이름1]를 [브랜치 이름2]로 변경 (??) [브랜치 이름1]를 [브랜치 이름2]로 이동 (??) |
$git remote update $git branch -r $git checkout -t [브랜치 이름] |
원격 저장소 갱신 원격 저장소의 branch 목록 확인 원격저장소의 [브랜치이름]을 로컬에 생성, checkout |
$git remot update git branch -r $git checkout -f -t [브랜치 이름] |
원격 저장소 갱신 원격 저장소의 branch 목록 확인 원격저장소의 [브랜치이름]을 로컬에 생성, checkout (에러 무시) |
Git 이력 확인 명령어
명령어 | 설명 |
$git log | commit 내역 보기 |
$git log --status | commit 내역과 관련 파일 함께 보기 |
$git log --oneline | 한줄로 표기 (??뭘) |
$git log --oneline --branches | 각 브랜치의 커밋 확인 |
$git log --oneline --branches --graph | 각 브랜치의 커밋 확인, 그래프 형식 |
$git log [브랜치 이름1] [브랜치 이름2] | [브랜치 이름1]과 [브랜치 이름2]의 차이 보기 |
변경사항 관련
명령어 | 설명 |
$git fetch | 원격 저장소에서 변경사항 가져오기, commit(정보)만 가져옴(현재 브랜치에 합쳐지지 않음) |
$git pull | 원격 저장소에서 변경사항 가져오기, 현재 브랜치에 합쳐짐 |
$git status | 깃 상태 확인 |
$git diff | 깃 변경 내용 확인 |
$git stash | 현재 작업 사항 임시 저장 |
$git stash list | 임시 저장 목록 확인 |
$git stash apply | 임시 저장 내용 가져오기 |
$git stash drop | 임시 저장 내용 삭제 |
$git stash clear | 임시 저장 내용 모두 삭제 |
실수했을 때
명령어 | 설명 |
$git checkout --[파일 이름] | [파일 이름] 수정내용 되돌리기 // 정확힌 모름 안써봄. |
$git reset HEAD [파일 이름] | [파일 이름] 스테이징 취소(add한 거 취소) |
$git reset HEAD^ | 최신 commit 취소 |
$git reset [커밋해시] | [커밋해시]시점으로 되돌리기 (긴 거 말고 짧은 커밋 번호), |
$git reset --soft [커밋해시] | [커밋해시]시점으로 되돌리기, head만 바뀜 |
$git reset --mixed [커밋해시] | [커밋해시]시점으로 되돌리기, head 바뀜, 스테이징도 해당 시점으로 바뀜 |
$git reset --hard [커밋해시] | [커밋해시]시점으로 되돌리기, head 바뀜, 스테이징 바뀜, 작업 중인 디렉토리 바뀜 |
$git revert [커밋해시] | [커밋해시]시점의 변경 이력을 취소 |
$git show [커밋해시] | 특정 커밋 내역 확인 |
기타
명령어 | 설명 |
$git push --set-upstream [origin/원격 브랜치 이름] [브랜치 이름] | 브랜치 생성 후 처음으로 원격저장소에 푸쉬했을 때, 어떤 브랜치에 푸쉬할 것인지 명시 |
현재 작성한 파일을 다 날려버릴 때 (push되지 않은 이전 상태로 돌아가기)
명령어 | 설명 |
$git reset | 모든 stgaed파일을 unstage상태로 만듦 |
$git checkout . | 모든 변경 사항을 취소함 |
$git clean -fdx | 추적할 수 없는 모든 파일을 제거함 |
-x | 무시된 파일도 모두 제거하는 옵션 |