티스토리 뷰

공부

Git 주요 명령어

Vincent Park 2013.08.28 21:34

사내 신규입사자 교육도 할겸,
Git 을 사용해 오면서 유용하게 썼던 주요 명령어들을 정리해 봤다.



<용어 정리>

Repository : 작업 저장소
Remote : 
원격 저장소
Branch : 
개발이 진행되는 노선 
Origin : 
기본 업스트림 저장소
Master : 
기본 개발 브랜치
HEAD : 
현재 작업중인 브랜치를 가리키는 포인터.
Merge : 
다른 브랜치의 내용을 현재 브랜치로 가져와 합치는 작업
Checkout : 
작업자의 작업트리를 저장소의 특정 시점과 일치 하도록 변경하는 작업
Commit : 
현재 변경된 작업 상태를 확정하고 저장소에 저장하는 작업작업 변경 이력 내의 한 지점.
Fetch : 
원격헤드를 참조해서 로컬에 없는 객체를 내려받는 작업.


<주요 명령어>

git init
새로운 저장소(Repository) 를 만든다


git clone
원격 저장소를 복제 받아 로컬 저장소를 생성한다

           $ git clone <Remote-Repository-Host> <Directory-Name>


git fetch
원격 저장소의 변경사항을 가져온다


git pull
원격 저장소의 변경사항을 가져와서(fetch), 로컬 저장소로 합친다.(merge)


git add
새로 작업된 파일/디렉토리를 인덱스에 추가한다.

           $ git add <File-Name or Directory-Name>


git commit
변경된 내용을 확정하여 지점을 만들고, HEAD에 반영한다

           $ git commit –m “이 커밋에 대한 설명
           $ git commit –-amend : 
최근 커밋의 내용(커밋 파일 추가 or 메시지 수정을 수정하고 덮어쓴다.


git push

원격 저장소로 반영한다 
         ex) $ git push origin master


git stash
워킹 디렉토리에 unstaged 파일들을 백업하고 워킹디렉토리를 깨끗한 상태 즉 HEAD의 상태로 만든다

           $ git stash save : 현재 작업을 저장하고 HEAD 로 복원한다
            $ git stash list : 저장된 stash 목록을 보여준다
            $ git stash pop : 가장 최근에 save 한 stash 를 꺼내서 적용한다
    $ git stash apply : stash pop 과 동일하지만 list 에서 삭제하지 않는다
    $ git stash clear : 전체 stash 삭제
    $ git stash drop : 필요없는 stash 삭제


git status
현재 저장소의 상태 확인한다 (브랜치 정보 및 commint/add 해야 할 파일들)


git branch
브랜치 작업

           $ git branch <Branch-Name> : 현재 Repository 에 새 브랜치 생성
           $ git branch : 
로컬에 저장된 브랜치 목록 보기
           $ git branch –a : 
로컬&원격 브랜치 목록 확인
           $ git branch –d <Branch-Name> : 
브랜치 삭제


git checkout

           $ git checkout <Branch-Name> : 브랜치 전환
           $ git checkout –b <Branch-Name> :  
브랜치 생성
           $ git checkout <File or Directory Name> : 
해당 파일 혹은 디렉토리를 마지막 커밋상태로 되돌림
           $ git checkout <Commit-ID> <File or Directory Name> : 
해당 커밋ID 의 상태로 되돌림


git reset
특정 커밋을 취소한다

           $ git reset –-hard <Commit-ID> : 커밋ID 에 해당하는 커밋을 취소한다
           $ git reset –-hard HEAD^ : HEAD 
의 가장 최근 커밋을 취소한다 (복구불가)
           $ git reset –soft HEAD^ : HEAD 
의 가장 최근 커밋을 취소한다 (복구가능)


git revert
기존의 커밋에서 변경한 내용을 취소해서 새로운 커밋을 만든다

           $ git revert <Commit-ID> 
           $ git revert HEAD : 
가장 최근 커밋을 취소하고 새 커밋을 만든다


git merge
브랜치를 현재 브랜치로 합친다

           $ git merge <Branch-Name>


git rebase
브랜치의 변경사항을 현재 브랜치에 적용한다

           $ git rebase <Branch-Name>


git cherry-pick
특정 하나의 커밋만 rebase 한다

           $ git cherry-pick <Commit-ID>


git log

           $ git log -10 : 최근 10개의 커밋로그를 보여준다
           $ git log –pretty=oneline : 
한줄로 보여준다
           $ git log --graph : 
그래프 형태로 보여준다
           $ git shortlog : 
짧은로그를 보여준다


git reflog
로컬에 작업된 커밋 로그을 보여준다


git config

$ git config --global user.name “이름
$ git config --global user.email “
이메일주소
$ git config --global color.ui auto


git diff
해당파일의 Local  Remote 의 차이점을 보여준다

           $ git diff <File-Name>


git remote
원격 저장소 정보를 확인/설정 한다

           $ git remote add origin master <Remote-Repository-Host> : 원격 저장소를 설정한다
           $ git remote show <Repository-Name> : 
원격 저장소의 정보를 보여준다
           $ git remote rm <Repository-Name> : 
원격 저장소를 제거한다
           $ git remote update : 
원격 저장소 정보를 업데이트한다


git blame

코드 라인별로 커밋ID 와 커밋한 사람등의 정보를 보여준다

           $ git blame <File-Name>
           $ git blame –L 1, 10 <File-Name> : 1~10 
라인의 정보를 보여준다


git show

           $ git show <Commit-ID> : 특정 커밋ID 의 로그를 보여준다
           $ git show <Branch-Name> : 
특정 브랜치의 최근 커밋 로그를 보여준다
           $ git show HEAD^ : 
현재 브랜치의 최근 커밋 로그를 보여준다


git submodule
저장소 안에 또 다른 독립 저장소.

           $ git submodule add <Remote-Repository-Host> <Directory-Name> : 새로운 서브모듈을 추가한다
           $ git submodule init : 서브모듈을 초기화한다
           $ git submodule update : 원격 저장소에서 Checkout 받는다.

 

http://gitref.org/

신고
댓글
  • 프로필사진 Codeflow 검색하다 들어왔어요! 좋은 글 잘 읽었습니다 :)
    제가 블로그에 Git의 원리와 사용법 등을 번역해 둔 게 있는데
    시간 나면 놀러오세요~

    http://blog.naver.com/codeflow_dev/60199030339
    2013.09.16 17:57 신고
댓글쓰기 폼