작성자: 강은석
GIT 개요:
GIT을 쓰는 이유
빠른 속도
단순한 구조
비선형적인 개발(수천 개의 동시 다발적인 브랜치)
완벽한 분산
Linux 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면에서)
Git은 미친 듯이 빨라서 대형 프로젝트에 사용하기도 좋다.
1. GIT 설치 (WINDOWS 기준)
GIT HOMEPAGE 에서 원클릭 설치! ( https://git-scm.com/download/win )
2. GIT 설정
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
3. 가장 기본적인 개념
You can think of a commit as a snapshot of your project at a moment in time
세개의 스테이지가 존재
WORKING FOLDER -
SVN 서버에 History 저장
GIT Local 에 History 저장
4. 가장 자주 사용하는 명령어들
git help <명령어> ex. git help config
git add -A 번체
git add <추적하고자 하는 하고자 하는 파일 path> ex. git add tt.txt
git status 현재 추적된 파일 상태
git push (push하고자 하는 remote branch ) (push하고자 branch )
git pull (pull 하고자하는 branch ) (pull 반영하고자 하는 local branch )
git remote add 이름 주소
git remote set-url <리모트 브랜치이름> <바꾸려는 url>
git diff —cached: 현재 working folder 에서 올라간 파일들과 차이 보기
git checkout -b 브랜치이름 : 브랜치 생성하면서 변경
git checkout 브랜치이름: 브랜치로 현재 git 설정 바꿈
git branch new : 새로운 branch 를 만든다.
git checkout new : new branch 를 새로만들고 new branch 로 이동한다.
git checkout -b copy master : master를 복제하여 브랜치를 만들고 copy로 checkout 이동한다
git branch -m copy modified: copy branch의 명칭을 modified로 변경한다 (-M 기존 같은 명칭 브랜치 있어도 덮어쓴다)
git branch -d copy : copy 브랜치를 삭제한다 (-D 옵션은 강제 삭제)
자부 발생하는 예외상황 처리
이미 서버에 올라간 파일에 추적을 중지하면서 local 파일을 남겨두고 싶은 경우
( ex. 컴퓨터로 별로 다른 로컬 개발 설정 파일 django my.cnf 설정 파일 or 다른 개발 환경 Database 설정 파일)
git rm 파일 —cached 해당파일 path
git mergetool (mergetool 도 여러가지 .. 이고
복잡하게 꼬인 경우 GUI 툴을 사용합니다 ( Source Tree )
ssh vs https
HTTPS로 주소를 지정할 경우 저장소 권한을 가진 아이디의 로그인 및 비밀번호 입력을 매번 해주어야함.
ssh 생성법 ( windows 는 git을 먼저 설치한다 ) - github 주소 첨부
windows 는 gitbash 를 접속한후 ssh를 통해 리눅스는 터미널에서 ssh 로 바로 생성 가능
GIT 사용 전략
git flow 이용
좋은 참고 자료:
https://backlogtool.com/git-guide/kr/
https://git-scm.com/book/ko/v2
http://www.slideshare.net/kexplo/ndc2016-effective-git
http://danielkummer.github.io/git-flow-cheatsheet/
https://github.com/nvie/gitflow
http://mobicon.tistory.com/106