7. Page no. 7
git은 내 컴퓨터에서만 버전 관리가 되는 건가요?
Remote Repository
다른 사람들과 작업을 할 수 있게 해줍니다.
8. Page no. 8
원격저장소에 작업 내용을 어떻게 공유할까요?
원격저장소
로컬저장소 로컬저장소에 작업 내용 commit
push
협업을 위해 원격저장소에 push
9. Page no. 9
svn은 중앙집중식 버전 관리(CVCS)입니다.
관리자는 누가 무엇을 할지 꼼꼼하게 관리할 수 있습니다.
중앙 서버가 다운되면 아무도 협업할 수 없습니다..
Computer A 저장소
10. Page no. 10
git은 분산 버전 관리(DVCS)입니다.
커밋속도가 빠릅니다.
로컬저장소에 커밋을 하므로 커밋에 부담이 없습니다.
원격저장소와 연결이 끊겨도 버전 관리는 계속됩니다.
원격저장소에 문제가 생겨도 원격저장소에 연결되었던 로컬저장소로 복원이 가능합니다.
Computer A 원격
저장소
로컬
저장소
11. Page no. 11
스테이지 영역(또는 인덱스)는 로컬저장소 커밋 전의 단계입니다.
Working
Directory
Staging
Area
HEAD
Stage Fixes
Commit
Checkout the Project
워킹 디렉터리에서 파일을 수정합니다.
Staging Area에 파일을 Stage해서 커밋할 스냅샷을 만든다.
Staging Area에 있는 파일들을 커밋해서 git 디렉터리에 영구적인 스냅샷을 저장합니다.
13. Page no. 13
원격저장소에서 다른 작업자의 작업 내용을 내려받으려면
Computer A 로컬
저장소
git merge git fetch
git pull
원격
저장소
14. Page no. 14
svn은 각 파일의 변화를 저장합니다.
Checkins Over time
Version 1 Version 2 Version 3 Version 4 Version 5
File A △1 △ 2
File B △ 1 △ 2
△ 1 △ 2 △ 3File C
기초가 되는 파일과 함께 모든 변경 내역을 내려 받습니다.
15. Page no. 15
git은 시간 순으로 프로젝트의 스냅샷을 저장합니다.
Checkins Over time
File A A1 A1 A2 A2
File B B B B1 B2
File C C1 C2 C3 C3
Version 1 Version 2 Version 3 Version 4 Version 5
파일이 달라지지 않았다면 성능을 위해 파일을 새로 저장하지 않습니다.
16. Page no. 16
svn과 git의 차이점 요약
1. 저장소의 위치가 다르며 로컬저장소가 존재합니다. (분산 처리, 안전, 빠른 속도)
2. 커밋 이전에 스테이지 영역에 추가하는 과정이 있습니다. (커밋 대상의 분리)
3. 각각의 버전을 스냅샷으로 저장합니다.
4. 스냅샷이 있기에 브랜치도 자유롭게 만들 수 있습니다.
20. Page no. 20
추가와 확정
git add <파일 이름>
git add *
스테이징 영역에 추가하려면
변경 내용을 확정하려면
git commit –m “이번 확정본에 대한 설명”
21. Page no. 21
변경 내용 발행 하기
git push origin master
원격 저장소에 변경 내용을 올리려면
기존에 있던 원격저장소를 복제한 것이 아니라면
git remote add origin <원격 서버 주소>
22. Page no. 22
브랜치 만들기/브랜치 이동
git checkout –b develop
Develop이라는 이름의
브랜치를 만들고 이동
Master로 돌아오기
git checkout master
master
HEAD
develop
master
HEAD
develop
23. Page no. 23
갱신하고 병합 하기
git pull
로컬저장소를 원격저장소에 맞춰 갱신
다른 브랜치의 변경 내용을 현재 브랜치에 병합하려면
git merge <가지 이름>
master
master
HEADdevelop HEADdevelop
master