리스펙토링
첫 번째 세션
목차
Git
1. 깃?
2. 명령어
3. objects
Github
1. 이건 또 뭐야?
2. Tip
3. 필요할까? 실습
1. 깃 설치
2. 깃 명령어 사용
3. 깃헙 페이지 배포
Git
Git = 버전 관리 시스템(VCS)
파일 변화를 시간에 따라 기록했다가
나중에 특정 시점의 버전을
다시 꺼내올 수 있는 시스템
(*Pro git 참조)
Kakao Taxi
V 1.0
V 2.0
V 3.0
1.1
1.2
1.3
Test.c
main.c
1.1.1 error
fixed.c
Final.c
*기존 관리 방식 : 로컬, 중앙 집중식
중앙 저장소
작업 파일 복사 작업 파일 복사
CVCS(중앙 집중식)
• 프로젝트 관리자가 팀원들의 작업을
한 눈에 쉽게 관리가 가능
• 중앙 서버 고장 시 작업 불가, 백업
불가 등의 치명적인 문제 발생
DCVS(분산)
• 중앙 저장소의 자료를 통째로 복사
해서 로컬에 저장하기 때문에 아무
거나 골라도 서버 복원 가능
• 다양한 그룹과 다양한 방법으로 협
업 활동이 가능
중앙 저장소
(*github)
원격 저장소 원격 저장소
그래서 버전관리, 저장소 복제,
저장, 협업은 어떻게 하나요..?
=> Git 명령어를 사용
오늘 알아볼 Git 명령어
• git clone : 다른 서버에 있는 저장소를 복제
• git init : 현재 작업환경에 새로운 빈 저장소 .git 폴더를 생성
• git add : git이 파일을 새로 추적 [임시 저장?]
• git status : 파일의 상태를 확인
(untracked, unmodifed, modifed, staged)
• git commit : 변경된 파일 내용, 정보들을 저장소에 기록 [스냅숏]
• git remote : 원격 저장소 확인, 로컬환경과 연결
• git push : 연결된 원격 저장소에 커밋한 자료들을 전송
• git pull : 연결된 원격 저장소의 자료들을 로컬로 가져옴
다른 많은 git 명령어는
git에 익숙해지면서 천천히 찾아보기
*협업을 위해 branch(분기)
명령어를 꼭 익혀놓자 - 필수
*git 흐름 (출처 : 초보몽키의 개발공부로그)
좀 더 git의 원리를 알기 위해
구조를 파헤치자면..
** Objects
• 깃은 파일을 4가지의 object로 관리한다.
• blob, tree, commit, tag
• object 이름은 SHA1 해싱 알고리즘을
사용하여 영어,숫자 40자리로 만들어진다.
• .git/objects/ 폴더에 위치
• git cat-file –p “객체명” 으로 내용 확인
*git 구조 (출처 : 몽고랩)
* blob
• 파일을 add 했을 때 생성
• 파일 내용이 들어있다.
* tree
• 파일을 commit 할 때 생성
• 한 디렉토리의 모든 파일 blob Id, 메타데
이터를 저장
• 파일 타입, 객체명, 파일명이 기록된다.
* commit
• 파일을 commit 할 때 생성
• 변경 사항에 대한 메타데이터를 가진다.
• tree 객체명, 부모 commit 객체명,
author, committer, message를 기록
* tag
• git tag 할 때 생성
• commit 객체명, tag 이름, tagger,
message가 기록된다.
https://github.com/git/git/blob/master/object.c
git의 이점 정리
성능
• 매우 가볍다. 잘 최적화 되어 있음
• 파일 내용 변경 사항에 집중, 추적
보안
• 파일 내용을 SHA1 해싱 알고리즘으로 보호
• 변경 실수, 악의적인 변경을 막고 추적 가능
유연성
• 다양한 워크플로우 지원, 호환성
Github
Github
git을 사용하는 프로젝트를 지원하는
웹 호스팅 서비스
가장 인기 있는 오픈 소스 코드 저장소
*오픈소스 : 제작자의 권리를 지키면서 소스 코드 열람, 수정,
배포 등이 가능. 완전 무료 X..
우리는 Github로 무엇을 해야할까?
자신의 프로젝트를 github에서 관리한다.
github로 협업 프로젝트 수행한다.
오픈 소스 코드를 뜯어본다.
나만의 포트폴리오로 만든다.
facebook 같져?
= 소셜 코딩 서비스
요즘 기업들
github 주소 제출하라 하던데..
개발 선임자의 측면에서 이해
1. 프로필
2. 얼마나 많이 활동하는지
3. 무슨 프로젝트를 했는지
4. 무슨 언어가 주력인지
5. 협업 능력을 갖췄는지
6. 코드 스타일이 어떤지 등등
개발 활동에 대해
한 눈에 확인이 가능
(UI도 예쁘고 깔끔)
1) git을 사용한 협업 프로젝트 경험
2) github 열심히 관리
3) 지원서에 당당히 깃헙 주소 제출
세 줄 요약
Github로
소개페이지 배포하기
1.
Git Bash 설치
2.
Bootstrap Theme
3.
Github 저장소 생성
4.
git 명령어 따라해보기
5.
github.io URL 확인
문서를 깔끔하게 정리해주는
마크다운 Markdown (.md)
https://gist.github.com/ihoneymon/652be052a0727
ad59601
*가독성이 좋고, 간단한 구조의 문법을 사용하여
빠르게 컨텐츠를 작성할 수 있게 해주는 마크업 언어
(github의 readme.md)
배민 프론트개발 팀에서의
git workflow
http://woowabros.github.io/experience/2017/10/30/
baemin-mobile-git-branch-strategy.html
*실제로 git을 사용해 어떤 형식으로 협업 프로젝트를
진행하는지 맛 볼 수 있음
(우아한형제들 기술 블로그도
깃허브로 배포 된 듯)
git 더 알아보기 & 참조
빨간색 코딩 - http://sjh836.tistory.com/category/Git
git 간편 안내서 - https://rogerdudler.github.io/git-
guide/index.ko.html
완전 초보를 위한 깃허브 -
https://nolboo.kim/blog/2013/10/06/github-for-
beginner/
github에서 fork 및 pull request 해보기 –
https://www.xpressengine.com/devlog/22791272
git 깃허브 - https://github.com/git
git 원리 -
https://wayhome25.github.io/git/2017/04/02/git-
01-core/
git 객체 유형 및 구조 –
https://wayhome25.github.io/git/2017/04/02/git-
01-core/
what is git? -
https://www.atlassian.com/git/tutorials/what-is-git
프로 Git, Pro Git – 프로그래밍 도서 (도서관에서 빌림)
질문
&
스터디 조사
감사합니다.

리스펙토링 세미나 - Git, Github 알아보기

  • 1.
  • 2.
    목차 Git 1. 깃? 2. 명령어 3.objects Github 1. 이건 또 뭐야? 2. Tip 3. 필요할까? 실습 1. 깃 설치 2. 깃 명령어 사용 3. 깃헙 페이지 배포
  • 3.
  • 4.
    Git = 버전관리 시스템(VCS) 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템 (*Pro git 참조)
  • 5.
    Kakao Taxi V 1.0 V2.0 V 3.0 1.1 1.2 1.3 Test.c main.c 1.1.1 error fixed.c Final.c *기존 관리 방식 : 로컬, 중앙 집중식
  • 6.
    중앙 저장소 작업 파일복사 작업 파일 복사 CVCS(중앙 집중식) • 프로젝트 관리자가 팀원들의 작업을 한 눈에 쉽게 관리가 가능 • 중앙 서버 고장 시 작업 불가, 백업 불가 등의 치명적인 문제 발생 DCVS(분산) • 중앙 저장소의 자료를 통째로 복사 해서 로컬에 저장하기 때문에 아무 거나 골라도 서버 복원 가능 • 다양한 그룹과 다양한 방법으로 협 업 활동이 가능 중앙 저장소 (*github) 원격 저장소 원격 저장소
  • 7.
    그래서 버전관리, 저장소복제, 저장, 협업은 어떻게 하나요..? => Git 명령어를 사용
  • 8.
    오늘 알아볼 Git명령어 • git clone : 다른 서버에 있는 저장소를 복제 • git init : 현재 작업환경에 새로운 빈 저장소 .git 폴더를 생성 • git add : git이 파일을 새로 추적 [임시 저장?] • git status : 파일의 상태를 확인 (untracked, unmodifed, modifed, staged) • git commit : 변경된 파일 내용, 정보들을 저장소에 기록 [스냅숏] • git remote : 원격 저장소 확인, 로컬환경과 연결 • git push : 연결된 원격 저장소에 커밋한 자료들을 전송 • git pull : 연결된 원격 저장소의 자료들을 로컬로 가져옴
  • 9.
    다른 많은 git명령어는 git에 익숙해지면서 천천히 찾아보기 *협업을 위해 branch(분기) 명령어를 꼭 익혀놓자 - 필수
  • 10.
    *git 흐름 (출처: 초보몽키의 개발공부로그)
  • 11.
    좀 더 git의원리를 알기 위해 구조를 파헤치자면..
  • 12.
    ** Objects • 깃은파일을 4가지의 object로 관리한다. • blob, tree, commit, tag • object 이름은 SHA1 해싱 알고리즘을 사용하여 영어,숫자 40자리로 만들어진다. • .git/objects/ 폴더에 위치 • git cat-file –p “객체명” 으로 내용 확인
  • 13.
    *git 구조 (출처: 몽고랩)
  • 14.
    * blob • 파일을add 했을 때 생성 • 파일 내용이 들어있다.
  • 15.
    * tree • 파일을commit 할 때 생성 • 한 디렉토리의 모든 파일 blob Id, 메타데 이터를 저장 • 파일 타입, 객체명, 파일명이 기록된다.
  • 16.
    * commit • 파일을commit 할 때 생성 • 변경 사항에 대한 메타데이터를 가진다. • tree 객체명, 부모 commit 객체명, author, committer, message를 기록
  • 17.
    * tag • gittag 할 때 생성 • commit 객체명, tag 이름, tagger, message가 기록된다.
  • 18.
  • 19.
    git의 이점 정리 성능 •매우 가볍다. 잘 최적화 되어 있음 • 파일 내용 변경 사항에 집중, 추적 보안 • 파일 내용을 SHA1 해싱 알고리즘으로 보호 • 변경 실수, 악의적인 변경을 막고 추적 가능 유연성 • 다양한 워크플로우 지원, 호환성
  • 20.
  • 21.
    Github git을 사용하는 프로젝트를지원하는 웹 호스팅 서비스 가장 인기 있는 오픈 소스 코드 저장소 *오픈소스 : 제작자의 권리를 지키면서 소스 코드 열람, 수정, 배포 등이 가능. 완전 무료 X..
  • 22.
  • 23.
    자신의 프로젝트를 github에서관리한다. github로 협업 프로젝트 수행한다. 오픈 소스 코드를 뜯어본다. 나만의 포트폴리오로 만든다.
  • 25.
    facebook 같져? = 소셜코딩 서비스
  • 26.
    요즘 기업들 github 주소제출하라 하던데..
  • 27.
    개발 선임자의 측면에서이해 1. 프로필 2. 얼마나 많이 활동하는지 3. 무슨 프로젝트를 했는지 4. 무슨 언어가 주력인지 5. 협업 능력을 갖췄는지 6. 코드 스타일이 어떤지 등등
  • 28.
    개발 활동에 대해 한눈에 확인이 가능 (UI도 예쁘고 깔끔)
  • 29.
    1) git을 사용한협업 프로젝트 경험 2) github 열심히 관리 3) 지원서에 당당히 깃헙 주소 제출 세 줄 요약
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
    문서를 깔끔하게 정리해주는 마크다운Markdown (.md) https://gist.github.com/ihoneymon/652be052a0727 ad59601 *가독성이 좋고, 간단한 구조의 문법을 사용하여 빠르게 컨텐츠를 작성할 수 있게 해주는 마크업 언어 (github의 readme.md)
  • 37.
    배민 프론트개발 팀에서의 gitworkflow http://woowabros.github.io/experience/2017/10/30/ baemin-mobile-git-branch-strategy.html *실제로 git을 사용해 어떤 형식으로 협업 프로젝트를 진행하는지 맛 볼 수 있음 (우아한형제들 기술 블로그도 깃허브로 배포 된 듯)
  • 38.
    git 더 알아보기& 참조 빨간색 코딩 - http://sjh836.tistory.com/category/Git git 간편 안내서 - https://rogerdudler.github.io/git- guide/index.ko.html 완전 초보를 위한 깃허브 - https://nolboo.kim/blog/2013/10/06/github-for- beginner/ github에서 fork 및 pull request 해보기 – https://www.xpressengine.com/devlog/22791272
  • 39.
    git 깃허브 -https://github.com/git git 원리 - https://wayhome25.github.io/git/2017/04/02/git- 01-core/ git 객체 유형 및 구조 – https://wayhome25.github.io/git/2017/04/02/git- 01-core/ what is git? - https://www.atlassian.com/git/tutorials/what-is-git 프로 Git, Pro Git – 프로그래밍 도서 (도서관에서 빌림)
  • 40.
  • 41.