Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Git,
이해부터 활용까지
made by jylee 1
made by jylee 2
- 프로그램의 변경 이력을 관리하는 소프트웨어
- 종류 : SVN, Git, Mercurial, Bazaar 등
- 주로 SVN과 Git을 사용
버전 관리 프로그램이란?
made by jylee 3
원격 저장소
로컬 저장소 원격 저장소
사용자 PC
사용자 PC
파일
파일
commit
commit push
SVN과 git의 비교
made by jylee 4
SVN git
중앙 집중 모델 분산 개발 모델
소규모 시스템 적합 대규모 시스템 적합
간단한 기능과 간단한 조작법 높은 오픈 소스 활용도와 다양한 기능
브랜치 merge작업의 부담이 큼 Co...
made by jylee 5
Git의 기본 개념-저장소
made by jylee 6
- 작업 트리 : 실제 물리적인 파일 요소
- 인덱스 : 준비 영역(staging area) 역할로 가상의 공간 (쉽게 현재 작업 중인 IDE 공간)
- 저장소 : 로컬 저장소로 HEAD로 ...
made by jylee 7
- Git을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스 (github 외, bitbucket, gitLab 등)
- Git의 구성요소 중 원격 저장소를 관리하는 서버
- 개발자들의...
made by jylee 8
- Clone : 개인 저장소를 사용자PC에 복제하는 기능 (최초 한번)
- Fork : Github 기반의 오픈된 저장소를 개인의 저장소로 복제해오는 기능
- Pull Request : 복...
made by jylee 9
Git tool-기능 실행
console GUI Tool
made by jylee 10
Git 주요 기능-기본
SVN git
commit
Commit (로컬 저장소)
Push (원격 저장소)
update Pull
checkout Clone
made by jylee 11
- 원격 저장소의 데이터를 로컬에 가져오기만 하는 기능
- ‘FETCH_HEAD’이름의 브랜치로 로컬 저장소에 가져옴
- Fetch + merge = pull
Git 주요 기능-fetch
made by jylee 12
- 특정 commit의 내용을 삭제하는 기능
- Commit에 대한 이력자체를 삭제한 것이 아닌
새로운 commit을 생성하여 변경한 내용까지 기록
Git 주요 기능-revert (comm...
made by jylee 13
- 특정 commit 이후의 commit의 이력을 삭제하는 기능
- 옵션에 따라 인덱스, 작업트리 변경 가능
Git 주요 기능-reset (commit 이력 변경)
옵션 명 HEAD의 위치...
made by jylee 14
- Commit은 이력을 남기는 중요한 작업
- Commit에 대한 메시지 작성은 필수 작업
- Git 권장 commit 메시지 형식
1번째 줄 : 커밋 내의 변경 내용을 요약
2번째 줄 ...
made by jylee 15
- 버전 관리와 같은 S/W 릴리즈 지점
또는 별도로 표시할 commit에 생성
- Lightweight Tag : 특정 commit에 대한 태그
- Annotated Tag : 주석 첨부...
made by jylee 16
- 같은 코드를 바탕으로 각자 다른 작업을 수행하기 위한 독립적인 공간
여러 명이서 동시에 작업 할 때(각자 다른 작업/개발) 다른 사람의 작업에 영향이 없도록
메인 브랜치(같은 코드)에서...
made by jylee 17
Git 주요 기능-브랜치(Branch)
- 다른 브랜치와 병합(Merge) 가능
- 브랜치로 작업 기록을 남기기 때문에 세세한 이력 관리 가능
made by jylee 18
rebase
merge
Git 주요 기능- merge & rebase (브랜치 통합)
브랜치의 commit 등 변경 이력이 모두 그대로 남아 이력이 복잡해짐
브랜치의 commit 이력을 변...
made by jylee 19
- 다른 브랜치에서 지정한 커밋을 복사하여 현재 브랜치로 가져오는 기능
- 특정 브랜치에 잘못 추가한 commit을 올바른 브랜치에 옮기거나
다른 브랜치의 commit을 현재 브랜치에도 추...
made by jylee 20
- 작업트리에 unstaged 파일들을 백업하고, 작업트리를 깨끗한 상태, 즉 HEAD의 상태로 만드는 기능
- 현재 작업을 일시적으로 저장하되 git의 상태 변화를 주고 싶지 않을 때 사...
made by jylee 21
Git 관리 전략-git flow
- Git을 활용하기 위해서는 소스 버전 관리 및 빌드배포 전략을
확립하고 팀원간의 공유되어야 하며 학습-체득화 되어야 함
made by jylee 22
Git 관리 전략-git flow-주요 브랜치
- Origin/master : 먼저 배포했거나 곧 배포할 코드
- Origin/develop : 다음에 배포할 것을 개발하는 코드 (자동 빌...
made by jylee 23
Git 관리 전략-git flow-보조 브랜치
- Feature 브랜치 : 토픽 브랜치
- Release 브랜치 : 제품 배포를 준비하는 브랜치
- Hotfix 브랜치 : 운영 버전에 생긴...
made by jylee 24
Git 관리 전략-git flow-보조 브랜치-feature
- 상위 브랜치 : develop
- Merge 할 브랜치 : develop
- 브랜치 명명 규칙 : master, develo...
made by jylee 25
Git 관리 전략-git flow-보조 브랜치-release
- 상위 브랜치 : develop
- Merge 할 브랜치 : develop, master
- 브랜치 명명 규칙 : releas...
made by jylee 26
Git 관리 전략-git flow-보조 브랜치-release
- ① release 브랜치→master브랜치에 merge
② master 브랜치에 버전 Tag 생성 및 commit
소스 코드...
made by jylee 27
Git 관리 전략-git flow-보조 브랜치-hotfix
- 상위 브랜치 : master
- Merge 할 브랜치 : develop, master
- 브랜치 명명 규칙 : hotfix-*...
made by jylee 28
Git 관리 전략-git flow-보조 브랜치-hotfix
- ① 버그 해결 commit 이후 master 브랜치에 merge
② master 브랜치에 버전 Tag 생성 및 commit
소...
made by jylee 29
Git 관리 전략-저장소 분리
배포용 저장소
개발용 저장소
made by jylee 30
추천 사이트
Git 공식 사이트 : https://git-scm.com/
Git 간편 가이드 : https://rogerdudler.github.io/git-guide/index.ko.ht...
made by jylee 31
참고 사이트
https://backlogtool.com/git-guide/kr/
https://opentutorials.org/course/337/2283
http://www.slidesh...
Upcoming SlideShare
Loading in …5
×

git, 이해부터 활용까지

2,831 views

Published on

사실 이 ppt를 보는 것보다는 추천 사이트들을 한번씩 훑고 실습해보시는게 더 효과적입니다..ㅎㅎ

Published in: Software
  • Login to see the comments

git, 이해부터 활용까지

  1. 1. Git, 이해부터 활용까지 made by jylee 1
  2. 2. made by jylee 2 - 프로그램의 변경 이력을 관리하는 소프트웨어 - 종류 : SVN, Git, Mercurial, Bazaar 등 - 주로 SVN과 Git을 사용 버전 관리 프로그램이란?
  3. 3. made by jylee 3 원격 저장소 로컬 저장소 원격 저장소 사용자 PC 사용자 PC 파일 파일 commit commit push SVN과 git의 비교
  4. 4. made by jylee 4 SVN git 중앙 집중 모델 분산 개발 모델 소규모 시스템 적합 대규모 시스템 적합 간단한 기능과 간단한 조작법 높은 오픈 소스 활용도와 다양한 기능 브랜치 merge작업의 부담이 큼 Commit 할 때 메세지의 강제성 저장소 서버의 지속적 관리 필요 사설저장소 이용에 대한 비용 발생 안정된 네트워크 환경 필요 학습 필요 SVN과 git의 비교
  5. 5. made by jylee 5 Git의 기본 개념-저장소
  6. 6. made by jylee 6 - 작업 트리 : 실제 물리적인 파일 요소 - 인덱스 : 준비 영역(staging area) 역할로 가상의 공간 (쉽게 현재 작업 중인 IDE 공간) - 저장소 : 로컬 저장소로 HEAD로 최종 확정본 Git의 기본 개념-저장영역
  7. 7. made by jylee 7 - Git을 사용하는 프로젝트를 지원하는 웹 기반의 호스팅 서비스 (github 외, bitbucket, gitLab 등) - Git의 구성요소 중 원격 저장소를 관리하는 서버 - 개발자들의 소셜 네트워크 & 오픈 소스 공유 커뮤니티 라고도 불림 로컬 저장소원격 저장소 사용자 PC 파일 commitpush Pull Git tool-github
  8. 8. made by jylee 8 - Clone : 개인 저장소를 사용자PC에 복제하는 기능 (최초 한번) - Fork : Github 기반의 오픈된 저장소를 개인의 저장소로 복제해오는 기능 - Pull Request : 복제한 저장소의 주인에게 복사한 저장소 내용 merge 요청 - 위의 기능들도 인하여 git을 이용한 오픈 소스 활용과 오픈 소스 프로젝트 참가율 상승 로컬 저장소원격 저장소 사용자 PC 파일 commit push Pull 원격 저장소 개인 저장소오픈 저장소 Pull request fork Git tool-github-Clone & Fork & Pull Request clone
  9. 9. made by jylee 9 Git tool-기능 실행 console GUI Tool
  10. 10. made by jylee 10 Git 주요 기능-기본 SVN git commit Commit (로컬 저장소) Push (원격 저장소) update Pull checkout Clone
  11. 11. made by jylee 11 - 원격 저장소의 데이터를 로컬에 가져오기만 하는 기능 - ‘FETCH_HEAD’이름의 브랜치로 로컬 저장소에 가져옴 - Fetch + merge = pull Git 주요 기능-fetch
  12. 12. made by jylee 12 - 특정 commit의 내용을 삭제하는 기능 - Commit에 대한 이력자체를 삭제한 것이 아닌 새로운 commit을 생성하여 변경한 내용까지 기록 Git 주요 기능-revert (commit 이력 변경)
  13. 13. made by jylee 13 - 특정 commit 이후의 commit의 이력을 삭제하는 기능 - 옵션에 따라 인덱스, 작업트리 변경 가능 Git 주요 기능-reset (commit 이력 변경) 옵션 명 HEAD의 위치 인덱스 작업 트리 soft 변경함 변경 안 함 변경 안 함 Mixed 변경함 변경함 변경 안 함 Hard 변경함 변경함 변경함 Soft : commit만 되돌리고 싶을 때 Mixed : 변경한 인덱스의 상태를 원래대로 되돌리고 싶을 때 Hard : 최근의 commit을 완전히 버리고 이전의 상태로 되돌리고 싶을 때
  14. 14. made by jylee 14 - Commit은 이력을 남기는 중요한 작업 - Commit에 대한 메시지 작성은 필수 작업 - Git 권장 commit 메시지 형식 1번째 줄 : 커밋 내의 변경 내용을 요약 2번째 줄 : 빈 칸 3번째 줄 : 변경한 이유 Git 주요 기능-commit 메세지
  15. 15. made by jylee 15 - 버전 관리와 같은 S/W 릴리즈 지점 또는 별도로 표시할 commit에 생성 - Lightweight Tag : 특정 commit에 대한 태그 - Annotated Tag : 주석 첨부 버전 태그 - 일반적인 push 명령으로는 원격 저장소에 공유 안되므로별도의 tag push 작업 필요 Git 주요 기능-tag
  16. 16. made by jylee 16 - 같은 코드를 바탕으로 각자 다른 작업을 수행하기 위한 독립적인 공간 여러 명이서 동시에 작업 할 때(각자 다른 작업/개발) 다른 사람의 작업에 영향이 없도록 메인 브랜치(같은 코드)에서 개인 전용 브랜치(독립적인 공간) 생성 Git 주요 기능-브랜치(Branch)
  17. 17. made by jylee 17 Git 주요 기능-브랜치(Branch) - 다른 브랜치와 병합(Merge) 가능 - 브랜치로 작업 기록을 남기기 때문에 세세한 이력 관리 가능
  18. 18. made by jylee 18 rebase merge Git 주요 기능- merge & rebase (브랜치 통합) 브랜치의 commit 등 변경 이력이 모두 그대로 남아 이력이 복잡해짐 브랜치의 commit 이력을 변경(통합)시켜 이력이 단순해짐 * 메인(마스터) 브랜치에 토픽(서브) 브랜치를 불러올 경우에는 토픽 브랜치를 rebase 후 merge 하는 등, Merge와 Rebase를 상황에 따라 혼용하여 사용하기를 권장
  19. 19. made by jylee 19 - 다른 브랜치에서 지정한 커밋을 복사하여 현재 브랜치로 가져오는 기능 - 특정 브랜치에 잘못 추가한 commit을 올바른 브랜치에 옮기거나 다른 브랜치의 commit을 현재 브랜치에도 추가하고 싶을 때 사용 Git 주요 기능-cherry-pick
  20. 20. made by jylee 20 - 작업트리에 unstaged 파일들을 백업하고, 작업트리를 깨끗한 상태, 즉 HEAD의 상태로 만드는 기능 - 현재 작업을 일시적으로 저장하되 git의 상태 변화를 주고 싶지 않을 때 사용하는 기능 예) A작업 날림코딩 중 급하게 B작업 확인 해야 하는데 날림코딩이라 commit+pull 하기 불편할 때 Git 주요 기능-Stash
  21. 21. made by jylee 21 Git 관리 전략-git flow - Git을 활용하기 위해서는 소스 버전 관리 및 빌드배포 전략을 확립하고 팀원간의 공유되어야 하며 학습-체득화 되어야 함
  22. 22. made by jylee 22 Git 관리 전략-git flow-주요 브랜치 - Origin/master : 먼저 배포했거나 곧 배포할 코드 - Origin/develop : 다음에 배포할 것을 개발하는 코드 (자동 빌드 브랜치) - Master 브랜치로 merge하는 것은 새 버전 배포를 의미
  23. 23. made by jylee 23 Git 관리 전략-git flow-보조 브랜치 - Feature 브랜치 : 토픽 브랜치 - Release 브랜치 : 제품 배포를 준비하는 브랜치 - Hotfix 브랜치 : 운영 버전에 생긴 버그 해결을 위한 브랜치
  24. 24. made by jylee 24 Git 관리 전략-git flow-보조 브랜치-feature - 상위 브랜치 : develop - Merge 할 브랜치 : develop - 브랜치 명명 규칙 : master, develop, release-*, hotfix-* 를 제외한 것 - 개발자 저장소에만 존재하는 브랜치 origin에는 push 하지 않음 해당 브랜치의 목표 기능을 개발 기능 개발이 완성되면 develop 브랜치로 merge - Merge 할 때에 텅 빈 commit 개체를 추가하는 것을 권장
  25. 25. made by jylee 25 Git 관리 전략-git flow-보조 브랜치-release - 상위 브랜치 : develop - Merge 할 브랜치 : develop, master - 브랜치 명명 규칙 : release-* - 제품 배포를 준비하는 브랜치 develop 브랜치가 배포할 수 있는 상태가 되었을 때 생성 메타데이터(버전 넘버, 빌드 일정) 준비 와 사소한 버그 수정 release 브랜치 생성 후 버전 넘버가 붙는다면 ‘진짜’ 배포하는 단계
  26. 26. made by jylee 26 Git 관리 전략-git flow-보조 브랜치-release - ① release 브랜치→master브랜치에 merge ② master 브랜치에 버전 Tag 생성 및 commit 소스 코드내의 버전 정보 업데이트 ③ release브랜치→ develop 브랜치에 merge ④ 배포 완료 후 release 브랜치 삭제
  27. 27. made by jylee 27 Git 관리 전략-git flow-보조 브랜치-hotfix - 상위 브랜치 : master - Merge 할 브랜치 : develop, master - 브랜치 명명 규칙 : hotfix-* - 이미 배포한 운영 버전에 생긴 문제를 해결하기 위한 브랜치 hotfix 브랜치 생성 후 버전 넘버 변경 release 브랜치와의 계획적/우발적의 차이
  28. 28. made by jylee 28 Git 관리 전략-git flow-보조 브랜치-hotfix - ① 버그 해결 commit 이후 master 브랜치에 merge ② master 브랜치에 버전 Tag 생성 및 commit 소스 코드내의 버전 정보 업데이트 ③ hotfix브랜치→ develop 브랜치에 merge release 브랜치가 아직 삭제되지 않았다면 release 브랜치에도 merge ④ 배포 완료 후 hotfix브랜치 삭제
  29. 29. made by jylee 29 Git 관리 전략-저장소 분리 배포용 저장소 개발용 저장소
  30. 30. made by jylee 30 추천 사이트 Git 공식 사이트 : https://git-scm.com/ Git 간편 가이드 : https://rogerdudler.github.io/git-guide/index.ko.html Git 입문 유용 사이트 : https://backlogtool.com/git-guide/kr/ Github 공식 사이트 : https://github.com/ 성공적인 git 브랜칭 전략 번역본 : http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html 구글 트렌드 (트렌드 그래프)/ 구글 이미지 (각 로고 관련) Git 이해 관련 : https://backlogtool.com/git-guide/kr/ Git flow: : http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html 이미지 출처
  31. 31. made by jylee 31 참고 사이트 https://backlogtool.com/git-guide/kr/ https://opentutorials.org/course/337/2283 http://www.slideshare.net/ibare/dvcs-git http://www.slideshare.net/einsub/svn-git-17386752 http://noritersand.tistory.com/86 https://www.google.com/trends/explore#q=SVN%2C%20Git%2C%20Mercurial%2C%20Bazaar http://dimdim.tistory.com/entry/GIT%EC%97%90-%EB%8C%80%ED%95%9C-%EB%82%B4%EC%9A%A9%EC% http://wit.nts-corp.com/2014/03/25/1153 http://blog.outsider.ne.kr/865 http://blog.outsider.ne.kr/866 http://ohgyun.com/402 http://dogfeet.github.io/articles/2011/a-successful-git-branching-model.html https://slipp.net/questions/244 http://cfile30.uf.tistory.com/attach/257EAC41530ED8970BE484

×