4. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
5. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
2. 프로젝트의 버전관리
되돌아가기
6. Git을 사용하는 이유
Version Control System
(버전 관리 시스템)
기능 개선 / 버그 수정 / SW 커스터마이징
의미 있는 변화 저장
1. 프로젝트의 변경관리
코드관리
2. 프로젝트의 버전관리
되돌아가기
3. 프로젝트의 협업
팀 프로젝트
현주
민정
민정
주혜
민정
예림
예림
주혜
현주
현주
7. 버전관리 tool
Git을 사용하는 Project를 가시적으로
보기 위한 소스 공유 Service
https://github.com/https://git-scm.com/
8. 1. git 커맨드를 이용해서 여러 사람이 협업하기
2. github를 이용해서 여러 사람이 협업하기
: 사실상 1번을 web에서 하는 것이지만 조금 더 직관적
9. 1. git 커맨드를 이용해서 여러 사람이 협업하기
2. github를 이용해서 여러 사람이 협업하기
: 사실상 1번을 web에서 하는 것이지만 조금 더 직관적
그러나 협업을 하다가 conflict(충돌)이 날 경우 간단한 코드만 해결 가능
> conflict code 줄 수가 많은 경우 결국은 1을 사용해야 함
10. 브랜치란?
SW 개발할 때 개발자들은
같은 소스코드를 함께 공유하고 코딩한다!
같은 소스코드에서 출발해서
- A는 버그를 수정
- B는 새로운 기능 추가
여러 개발자들이 동시에 다양한 작업을 할 수 있다!
11. 브랜치란?
Branch : release
다른 사람의 작업에 영향을 주거나 받지 않는다.
여러 사람이 B커밋의 소스코드를 기반으로
서로 다른 작업을 한다
먼저 메인 브랜치(master)에서
자신의 작업 전용 브랜치 (release, func1, bugFix)를 만든다.
Branch : func1
Branch : bugFix
Branch : master
13. 브랜치로 협업하기
1. 각자 자신의 브랜치에서 작업 진행 (release, func1, bugFix)
2. 메인 브랜치(master)에 자신의 브랜치 변경 사항을 적용!
브랜치를 사용하는 이유
다른 브랜치와 병합(Merge)함으로써,
작업한 내용을 새로운 하나의 브랜치로 모을 수 있다Branch : release
Branch : func1
Branch : bugFix
Branch : master
14. 브랜치로 협업하기
A B W Y Z
C
O
X
T
G
F
Branch : release
Branch : func1
Branch : bugFix
Branch : master
릴리즈 버전 이력
기능 추가 이력
버그 수정 이력
15. 브랜치로 협업하기
다른 사람의 작업에 영향을 받지 않고
독립적으로 특정 작업을 수행하여
그 결과를 하나로 모을 수 있다.
19. github로 브랜치 협업하기
현재 master 브랜치에 있음 (default)
$ git branch [브랜치명]
notice라는 이름의 branch 생성
$ git branch
현재 내 local branch 리스트 확인
$ git checkout [브랜치명]
notice 브랜치로 이동! : 난 지금부터 notice 브랜치에서 작업할래
20. github로 브랜치 협업하기
새 파일 생성! : notice 1007
현재 브랜치: notice
기존 파일 수정! : Notice-Text
21. github로 브랜치 협업하기
새 파일 생성! : notice 1007
현재 브랜치: notice
기존 파일 수정! : Notice-Text ( 한 줄 추가함 )
22. github로 브랜치 협업하기
현재 변경사항 확인
$ git status
현재 변경이 있는 파일들 모두 commit 대기로 추가
$ git add .
“notice 추가 및 수정” 이란 이름의 version으로 저장
$ git commit
23. github로 브랜치 협업하기
원격 저장소 (github repository)에 저장
$ git push
처음 만들어진 브랜치가 github에 push될 때는 다
음과 같이 gitbash의 말에 따라
$ git push --set-upstream origin notice
origin (push하려는 dsc-git repository의 별명)
notcie (push 하려는 branch 이름)
24. github로 브랜치 협업하기
현재 기본 브랜치인 master와
Notice 브랜치와 병합 (merge) 할
요청을 만들지 물어본다!
pull request
25. github로 브랜치 협업하기
pull request 생성
Notice 브랜치의 내용을
master 브랜치와 합치고
그 내용을 master에 넣을래
라는 요청을 만들겠어!
able to merge!
28. github로 브랜치 협업하기 근데 다른 팀원도 동시에 뭔가를 했다면?!
$ git branch [브랜치명]
check라는 이름의 branch 생성
$ git checkout [브랜치명]
check 브랜치로 이동! : 난 지금부터 check 브랜치에서 작업할래
29. github로 브랜치 협업하기
새 파일 생성! : DSC-ewha-core 기존 파일 수정! : Notice-Text
현재 브랜치: check
근데 다른 팀원도 동시에 뭔가를 했다면?!
30. github로 브랜치 협업하기 근데 다른 팀원도 동시에 뭔가를 했다면?!
현재 변경사항 확인
$ git status
현재 변경이 있는 파일들 모두 commit 대기로 추가
$ git add .
“check core 파일 추가notice 수정” 이란
이름의 version으로 저장
$ git commit
31. github로 브랜치 협업하기 근데 다른 팀원도 동시에 뭔가를 했다면?!
원격 저장소 (github repository)에 저장
$ git push
처음 만들어진 브랜치가 github에 push될 때는 다
음과 같이 gitbash의 말에 따라
$ git push --set-upstream origin notice
origin (push하려는 dsc-git repository의 별명)
check (push 하려는 branch 이름)
32. github로 브랜치 협업하기
현재 기본 브랜치인 master와
check 브랜치와 병합 (merge) 할
요청을 만들지 물어본다!
pull request
근데 다른 팀원도 동시에 뭔가를 했다면?!
33. github로 브랜치 협업하기
pull request 생성
chek 브랜치의 내용을
master 브랜치와 합치고
그 내용을 master에 넣을래
라는 요청을 만들겠어!
Can’t automatically merge!
근데 다른 팀원도 동시에 뭔가를 했다면?!
34. github로 브랜치 협업하기
자동 merge가 안된다!!
Resolve conflicts!!
충돌이 난 부분을 하나하나 봐야한다!
근데 다른 팀원도 동시에 뭔가를 했다면?!
35. github로 브랜치 협업하기 근데 다른 팀원도 동시에 뭔가를 했다면?!
같은 줄에 다른 내용이 들어가있군!!
어떤 걸로 할꺼야? 선택해서 수정해!
36. github로 브랜치 협업하기 근데 다른 팀원도 동시에 뭔가를 했다면?!
<<<<
====
>>>>
없애고 해결하기!
43. 브랜치 그래프
저번에 말한 Sourcetree 라는
GUI 툴을 이용하면
local 브랜치 내용도
그래프로 볼 수 있음!!
사실 세미나 자료 만들다가 되돌린 게 있어서
그래프가 지금 세미나 흐름과 안맞아요
44. 브랜치 그래프
A B W Y
C
G
Branch : notcie
Branch : check
Branch : master
notice 추가 및 수정
Notice 1007.txt 파일 추가
Notice-text.txt 파일 수정
notice 추가 및 수정
DSC-ewha-core.txt 파일 추가
Notice-text.txt 파일 수정
Merge pull request #1
from mjung1798/notice
Merge pull request #2
from mjung1798/check