github 명령어 모음

git 명령어

전문용어보다는 알기 쉽게 적었습니다.

아래에서 나오는 [] 는 명령어를 입력할때 생략해야 합니다.

git config --global user.name "name" 최초 한번은 사용자이름을 지정해줘야 한다
git config --global user.email "user@email.com" 최초 한번은 사용자 이메일을 지정해줘야 한다
git config --global alias.co checkout co 라는 별명(단축글자)으로 checkout 을 사용한다
git config --global core.editor emacs git 편집기로 emacs 를 사용한다
git config --golbal merge.tool vimdiff 머지툴로 vimdiff 를 사용한다
git config --list 글로벌 설정을 확인한다
git clone url 원격저장소 로컬에 복사
git init 원격관리 시작(로컬저장소를 만든다)
git add filename 파일 추적하기(staging area 에 추가한다)
git commit -m 'commit message' 커밋하고 메시지 입력(작업내용을 저장소로 보낸다)
git pull 원격저장소에서 다운로드하면서 합치기
git push 원격저장소로 업로드
git status 현재 상태 알아보기
git diff staged 와 unstaged 상태를 볼수 있다(마지막 커밋한 부분은 보여주지 않는다)
git diff --cached 워킹디렉토리에 있는것과 staging area 에 넣은 파일의 변경된 부분을 보여준다.
git commit -a -m git add 명령을 생략하고 바로 커밋할때 사용한다
git rm filename 삭제하기(삭제한후 커밋해야 한다)
git rm -f filename staging area 에 추가하고 삭제가 안될때 강제삭제
git rm --cached filename 로컬에 그대로 두고(삭제하지않고) git 만 추적하지 않게하기
git mv file_from file_to file_from 을 file_to 로 파일명 변경하기
git log 커밋 로그 보기
git add --all 한번에 여러파일을 stage area 에 add 한다
git add file1 file2 file3 file1, file2, file3 등 3개의 파이을 한번에 add 할때 사용한다
git log 커밋 로그 보기
git log -p 각 커밋의 diff 결과를 보여준다
git log -p -2 각 커밋의 diff 결과 중 최근 2개만 보여준다
git log --word-diff 각 커밋의 diff 결과 중 줄단위가 아닌 단어단위로 보여준다.
git log -U1 --word-diff 각 커밋의 diff 결과 중 줄단위가 아닌 단어단위로 보여준고 해당줄만 보여준다.
git log --star 수정된 파일의 통계정보 보여준다.
git log --name-only 커밋정보중에서 수정된 파일의 목록만 보여준다.
git log --name-status 수정된 파일의 목록을 보여줄뿐만 아니라 파일을 추가,수정,삭제한것들도 보여준다.
git log --abbrev-commit 40자 짜리 SHA-1 체크섬의 처음 몇자만 보여준다.
git log --relative-date 2주전 처럼 상대적인 형식으로 보여준다.
git log --graph 브렌치와 머지 히스토리 정보까지 아스키 그래프로 보여준다.
git log --pretty=oneline 로그의 히스토리 통계 중 한줄씩만 보여준다(oneline, short, full, fuller 옵션이있다)
git log --pretty=format:"%h - %an, %ar : %s" 옵션대로 원하는 형태로 로그를 출력한다.
git log -(n) 최근 n개의 커밋만 조회한다
git log --since[--after] 명시한 날짜 이후의 커밋만 조회한다
git log --until[--before] 명시한 날짜 이전의 커밋만 조회한다
git log --author 입력한 저자의 커밋만 조회한다
git log --committer 입력한 커미터의 커밋만 조회한다
git commit --amend 이전 커밋으로 되돌린다.
git checkout -- filename 이전 커밋으로 되돌린다(덮어쓴다)
git revert HEAD 마지막 커밋 상태로 돌려준다
git revert $id $id로 지정한 커밋의 상태로 돌려준다
git checkout -f 마지막 커밋상태로 돌려준다
git reset --hard 마지막 커밋한 상태로 돌려준다
git remote 현재 프로젝트에 등록된 리모트 저장소의 단축이름을 보여준다
git remote -v 단축이름과 url을 함께 보여준다
git remote add [단축이름] [url] 리코트 저장소를 추가한다.
git fetch [리모트저장소이름] [브렌치] 리모트 저장소의 데이터를 가져오기만 한다
git pull [리모트저장소이름] [브렌치] 리모트 저장소의 데이터를 가져오고 merge 한다
git push [리모트저장소이름] [브렌치] git push origin master : master 브렌치로 origin 저장소에 푸시한다
git remote show [리모트저장소이름] 리모트 저장소의 구체적인 정보를 보여준다
git remote rename [현재저장소이름] [바꿀려는저장소 이름] 저장소 이름을 바꾼다.
git remote rm [삭제할 저장소 이름] 저장소를 삭제한다
git tag 태그를 조회한다(알파벳순서)
git tag -l 'v1.4.2.' 1.4.2 버젼의 태그들만 검색한다
git tag -a Annoteted 태그를 만든다
git tag -a v1.4 -m '메시지' Annoteted 태그를 만들때 -m 으로 메시지를 추가할수 있다.
git show v1.4 1.4버젼의 태그 정보를 조회한다.
git tag -s v1.5 -m '메시지' GPG 개인키로 태그에 서명하고 메시지를 입력한다.
git tag v1.4 Lightweight 태그로 v1.4 를 만든다
git tag -v [태그이름] GPG를 사용하여 태그를 검증한다
git tag -a v1.2 -m 'version 1.2' 9fceb02 9fceb02 커밋 체크섬(지난 커밋)에 태그를 만들고 메시지를 입력한다
git push origin [태그이름] 태그이름을 리모트서버에 푸시한다(공유)
git push origin --tags 태그를 리모트서버에 한번에 여러개 푸시한다
git branch 브렌치를 보여준다(현재 작업하고 있는 브렌치는 앞에 가 붙어있다)
git branch -v 브렌치와 커밋메시지까지 보여준다
git branch [branch] [branch] 으로 새로운 브렌치를 만든다(만들기만 한것이다)
git checkout [branch] [branch] 이라는 브렌치로 이동한다
git checkout -b [branch] [branch] 라는 브렌치를 만들고 [branch] 로 이동한다
git merge [branch] [branch] 의 브렌치를 합친다 브렌치이름은 합쳐질 브렌치이다.
git branch --merged Merge 한 브렌치 목록을 보여준다
git branch --no-merged Merge 하지않은 브렌치 목록을 보여준다
git branch -d [branch] [branch] 의 브렌치를 삭제한다
git push [리모트저장소] [리모트브렌치] [리모트저장소] 에 [리모트브렌치]를 생성하고, 현재의 로컬브랜치와 추적상태를 만든다
git checkout -b [branch1] [리모트저장소]/[branch2] [branch1] 이라는 트래킹 브렌치가 만들어진다. [branch2] 는 원격저장소의 브렌치이고 이젠 [branch1] 에서 명령을 내리면 [리모트저장소]/[branch2]에서 작동한다
git push [리모트저장소] :[리모트브렌치] :[리모트브렌치] 라는 서버의 원격브렌치를 삭제한다. 띄어쓰기 주의
git push [리모트저장소] [localbranch]:[remotebranch] 위와같은내용. 로컬에서 빈내용을 [remotebranch] 에 채워 넣어라
git rebase --onto master server client client 브렌치를 Checkout하고 server와 client의 공통조상 이후의 패치를 만들어 master에적용한다
git rebarse [basebranch] topicbranch] server 브렌치를 Checkout하고 master 브랜치로 rebase 한다