[Git] 자주쓰는 명령어 정리
by Choi HyeSun
기존 디렉토리를 Git 저장소로 만들기 (git 시작)
- git init
기존 git 저장소를 사용하기위해 복사해오기
- git clone [git_path]
git 브랜치 관리
-
git branch : 브랜치 목록 확인
- git branch [브랜치명] : 브랜치명으로 브랜치 신규 생성
-
git checkout [브랜치명] : 해당 브랜치로 이동
- git checkout -b [브랜치명] : 브랜치가 없으면 브랜치를 생성한 후 이동
현재 파일들 상태 확인
-
git status : 파일이 변경됨을 확인(어떤 파일이 staged 상태인지 아닌지)
-
git diff : staged 상태가 아닌 파일이 어떤 내용으로 변경되었는지 확인
- git diff –staged : staged 상태인 파일을 비교
Stage(local) area에 git file 변경 저장하기
-
git add : 변경된 파일을 반영
- git add 후 파일 추가 수정시에도 git status확인 후 git add를 할 것
-
git rm [파일명] : git add한 파일 제거 (rm 후 git add한 효과)
- git rm -f [파일명] : 파일이 캐시되어있을 때 강제 제거할 수 있는 옵션
-
git mv [원본 이름] [변경할 이름] : git으로 관리된 파일의 이름 변경(history 관리됨)
-
Staged → Unstaged (add 취소)
-
git reset HEAD [File명] : add 취소
-
git checkout – [File명] : 수정한 사항 처음으로 되돌리기
-
git commit - git add에 추가한 file (staged file) commit하기
-
git commit -m “commit message” : commit massage 명시하여 commit
-
git commit -a : git add + git commit 효과 (git add 생략)
-
git commit –ammend : 직전 커밋에 덮어쓰기(파일 누락, commit message 변경 등)
git log - git commit 히스토리 조회
-
git log -[number] : 최근 number개의 결과만 보여줌
-
git log -p : 각 커밋의 diff 결과를 보여줌
-
git log –word-diff : -p와 비슷하지만 줄 단위 대신 단어 단위로 보여줌
-U1 옵션 : 단어비교일 때 -p와 같이 3줄을 보여주는 것이 아닌 현재 줄만 확인할 수 있도록 -
git log –stat : 각 커밋의 통계 정보를 조회
-
git log –shortstat : –stat 명령 결과 중 수정 파일, 추가/삭제한 줄만 보여줌
-
git log name-only : 커밋 정보 중 수정된 파일의 목록만 보여줌
-
git log name-status : 수정된 파일 목록 + 파일 추가/수정/삭제 구분
-
git log –pretty=[option] : option별로 출력 형식 설정 가능
- option 종류 : 아래에 별도로 작성
-
git log –graph : 브랜치와 머디 히스토리를 보여주는 아스키 그래프 출력
-
git log –since=[date] : 시간을 기준으로 이후 조회, 다양한 형식 지원 (=after)
예) 2018-01-15, 2.weeks, 2years 6day 1 minutes ago -
git log –util=[date] : 시간을 기준으로 이전 조회, 다양한 형식 지원(=before)
-
git log –author : 지정한 저자의 커밋만 보기
-
git log –commitor : 지정한 커미터의 커밋만 보기
git log –pretty=[option] 종류
-
option 종류
-
online : 각 커밋을 한 줄로 보여줌
-
short, full, fuller : 각 커밋 정보를 조금씩 가감샣서 보여줌
-
format:”[format들..]” : 나만의 포맷으로 포맷팅하여 보여줌
예) %h - %an; %ar : %s
-
-
format 종류 중 유용한 것들
-
%H : Commit hash
-
%h : Abbreviated commit hash
-
%T : Tree hash
-
%t : Abbreviated tree hash
-
%P : Parent hash
-
%p : Abbreviate parent hash
-
%an : Author name
-
%ae : Author e-mail
-
%ad : Author date (format respects the –date= option)
-
%ar : Autor date, relative
-
%cn : Committer name
-
%ce : Committer email
-
%cd : Committer date (format respects the –date= option)
-
%cr : Committer date, relative
-
%s : Subect
-
git으로 관리하지 않을 파일 설정
-
gitignore 파일 생성 후 무시할 파일 패턴 적기
-
빈 줄, #로 시작하는 주석줄 무시
-
표준 Glob 패턴 사용
-
- : 문자 0개 ~ 그 이상
-
[a-z] [0-9] : [ ] 사이에 있는 문자 중 하나를 의미
- ? : 문자 1개
-
-
디렉토리는 /를 끝에 사용하는 것으로 표현
-
!로 시작하는 패턴의 파일은 무시하지 않음
git remote 저장소
-
git remote : remote 저장소 확인
-
git remote -v : remote 저장소 단축이름 + URL로 확인
-
git remote show [remote-name(단축이름)] : remote 저장소 구체적인 정보 확인
-
git remote rename [단축이름변경전] [단축이름변경후] : remote 저장소 이름 변경
-
git remote rm : remote 저장소 제거
-
-
git remote add [단축이름] [URL] : remote 저장소 추가, 단축이름으로 관리할 수 있음
-
git fetch [remote-name(단축이름)] : remote 저장소의 데이터를 모두 로컬로 가져옴
- 단 머지하지 않음, 수동 머지(git merge)
-
git pull : remote 저장소의 데이터를 모두 로컬로 가져오고, 로컬 브랜치와 머지
-
git push [remote-name(단축이름)] [브랜치명] : remote 저장소에 commit 내용 반영
git tag
-
git tag : tag 조회
- git tag -l ‘검색패턴’ : 검색패턴으로 조회 (예 1.2*)
-
Annotated 태그 : 태그를 만든 사람 이름/이메일, 태그 만든 날짜, 태그 메시지 저장, 서명가능
-
git show : commit / tag 확인
-
git tag -a [태그명] -m ‘[태그메시지]’ : 태그명으로 태그 생성
뒤에 커밋 체크섬(전체 혹은 앞의 유니크한 일부분) 명시하면 기존 커밋에 태그 가능 -
git tag -s [태그명] -m ‘[태그메시지]’ : GPG 개인키로 서명 태그 생성
-
git tag -v [태그명] : GPG 사용하여 서명 검증, 서명자의 GPG 공개키 필요
-
-
Lightweight 태그 : 특정 커밋에 대한 포인터(단순 태그)
- git tag [태그명]
-
git push [remote명] [태그명] : remote server에 태그 push (git push만 하면 태그 push X)
Git commit, push 취소(롤백)
-
필요할 때 보려고 모아놓은 것이라 위랑 중복되는 것도 있음
-
add 취소(Staged → Unstaged)
-
git reset HEAD [File명] : add 취소
-
git checkout – [File명] : 수정한 사항 처음으로 되돌리기
-
-
commit 취소
-
git commit –amend : 가장 최신 commit에 내용 추가
-
git reset –[Option] HEAD^ : Coomit 취소
Option
soft : HEAD가 가리키는 브랜치를 옮긴다.
mixed : default, Staged된 파일을 HEAD가 가리키는 상태로 만든다.
hard : 현재 작업하는 디렉토리도 HEAD가 가리키는 상태로 만든다. (강력/위험)
HEAD : 현재 브랜치를 가리키는 포인터
^ : 바로 전 커밋 , ^^ : 바로 전전, ^^^ : 바로 전전전
~: 마지막 1개, ~2 : 마지막 2개, ~3 :마지막 3개
-
-
push 취소
-
git reset 후 재 push : 기존 커밋으로 다시 push 해버리기
git push origin –force : git push 할 수 없다고 하면 강제로 밀어넣기 -
git revert {Commit ID} : commit은 유지하면서 내용을 rollback
Commit이 유지되기때문에 Remote Server와 충돌이 적게 나는 장점
-
Subscribe via RSS