본문 바로가기

IT이야기/Tool

Git 치트시트

git인스톨

GitHub Desktop

https://desktop.github.com/

 

Git 전플랫폼판

https://git-scm.com

git툴의 설정

모든 로컬리포지토리용의 유저정보설정방법

//커밋 조작에 부가할 유저명설정
$ git config --global user.name "[name]"
////커밋 조작에 부가할 유저이메일설정
$ git config --global user.email "[email address]"

리포지토리설정

리포지토리를 신규작성 혹은 기존의 url에서부터 취득

//지정한 이름의 로컬리포지토를 작성
$ git init [project-name]

//프로젝트와 모든 버젼의 이력을 다운로드
$ git clone [url]

 

변경내용 작성

변경을 리뷰하여 커밋조작로그를 작성

 

//커밋 가능한 모든 신규 혹은 변경이 있는 파일을 일람을 표시
$ git status

//스테이지 실시하지 않은 파일의 차이를 표시
$ git diff

//버젼 관리를 위한 파일의 스냅샷을 작성
$ git add [file]

//스테이지된 이력과 마지막 파일버젼과의 차이를 표시
$ git diff --staged


//파일을 스테이지에서 제외. 내용자체는 유지
$ git reset [file]

//파일 스냅샷을 버젼기록으로서 기록
$ git commit -m"[descriptive message]"


 

파일 변경

//현재 리포지토리상의 모든 로컬브런치 목록을 표시
$ git branch

//신규 브런치작성
$ git branch [branch-name]

//지정 브런치로 변경
$ git checkout [branch-name]

//지정한 브런치의 이력을 현재 브런치에 통합
$ git merge [branch-name]

//지정 브런치를 삭제
$ git branch -d [branch-name]

 

 

파일정리

//작업디렉토리에서 파일을 삭제
$ git rm [file]

//버젼관리에서 파일을 삭제, 로컬에는 파일보존
$ git rm --cached [file]

//파일명을 변경&커밋
$ git mv [file-original] [file-renamed]


 

트랙킹 제한

//프로젝트내의 모든 제외된 파일의 일람을 표시
$ git ls-files --others --ignored --exclude-standard

 

일시저장

//모든 변경이 있는 트래킹중인 파일을 일시 보존
$ git stash

//최근에 일시 보존된 내용으로 복구
$ git stash pop

//일시 보존된 리스트의 내역표시
$ git stash list

//최근에 일시 보존된 내용파기
$ git stash drop

 

이력확인

//현재 브런치의 버젼이력을 표시
$ git log


//이름의 변경을 포함한 지정파일의 버젼이력을 표시
$ git log --follow [file]


//두 브런치간의 차이를 표시
$ git diff [first-branch]...[second-branch]


//지정한 커밋의 메타정보와 변경내용을 출력
$ git show [commit]

커밋의 수정

//[commit]이후의 모든 커밋을 취소하고, 로컬엔 변경내용을 보존
$ git reset [commit]

//[commit]이후의 모든 커밋을 취소, 로컬에도 변경내용 적용
$ git reset --hard [commit]

 

변경사항 동기

리포지토리의 북마크를 등록하여 버젼이력을 교환

//리포지토리 북마크에서 모든 이력을 다운
$ git fetch [bookmark]

//북마크의 브랜치를 현재의 로컬브랜치에 통합
$ git merge [bookmark]/[branch]

//로컬브런치의 모든 커밋이력을 깃허브에 업로드
$ git push [alias] [branch]

//변경이력을 다운하고, 변경을 통합
$ git pull