wiki:Git

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

마치막 커밋을 완전히 지운다.

참조