Git
정의
버전관리 시스템의 일종. 레파지토리를 서버와 로컬로 분산관리하여 개발자 별로 자기 로컬에 commit 을 하고 서버로 통합할 수 있다. git 를 이용한 개발자 sns 인 github.com 이 요즘 유행.
Global config
>git config --global -l
github.name=zziuni
github.token=xx:xx:xx:xx:xx:xx
color.ui=auto
core.editor=vim
user.name=zziuni
user.email=zziuni@xxx.com
alias.st=status
alias.com=commit
alias.co=checkout
alias.br=branch
alias.ci=commit
alias.logfull=log --oneline --graph --decorate --all
명령어
로컬 환경설정
git config --global user.name "사용할명" git config --global user.gmail "사용할이메일" git config --global color.ui "auto" git config --global --list
- git init
해당폴더에 git repository 생성.
- git rev-parse --show-toplevel
.git 가 있는 project repository root pash 확인
원격저장소
- git clone 원격저장소 폴더명
원격저장소 의 클론을 로컬에 만듬.
- git push
원격저장소에 commit한 내용 올리기.
- git remote rm 저장소명
저장소 삭제. origin을 path를 잘못 지정했을때 지우고 사용.
- git remote add 저장소명 URL
원격 저장소 추가. remote repos는 여러개 가능.
기본명령어
- git add 파일명or폴더명
satage에 commit할 파일들을 올린다.(예약한다.)
- git commit -m '코멘트'
코멘트와 함께 commit
- git commit -a -m '코멘트'
stage를 skip하고 변경사항 바로 commit.
- git reset 파일명
커밋하지 않은 add파일을 리셋함. 관련 strackoverflow
- git rm --cached -r 파일이나폴더명
--cached 옵션으로 state에 있는 파일을 삭제 할 수 있음. reset가 같은 기능. 이 옵션이 없으면 로컬파일삭제.
- git fetch 저장소명
저장소의 diff를 update.
merge
기준은 현재 브랜치가 master일때 쓰는 명령어
- git merge branch명
fetch로 반영된 내용을 branch에 합친다.
- get merge --squash branchName
최종 결과를 한 commit으로 merge.
- git merge cherry-pick 2343k23
특정 commit을 merge. 옵션 -n을 쓰면 status에 추가만 하고 commit은 하지 않음. 여러개를 한번에 합칠때.
- git mergetool
머지 실패시 충돌 해결용 diff tool이 뜬다.
log
- git log -5
commit log 보기. 숫자로 표시될 로그 수를 정의 가능.
- git log -p
변경내용 같이보기
branch
- git checkout -b new master
master에서 new란 브랜츠를 새로 만들고 그리로체크 아웃
- git branch -d new
new 브랜치 삭제. merge가 성공적으로 되지 않았는데 강제로 지울떄는 -D
- git branch -m new renew
new 브랜치 명을 renew로 변경.
reset
- git reset --hard HEAD
마치막 커밋을 완전히 지운다.
