깃 – Git – 시작하기



깃 – Git – 시작하기

5 28


getting-started-with-git

:briefcase: 깃 시작하기 발표자료

On Github chitacan / getting-started-with-git

[gɪt][명사] (英 속어) 재수 없는[멍청한] 놈

시작하기

by chitacan

오늘의 주제

는 아닙니다...

  • SVN vs Git
  • Git의 모든 명령어 파헤치기

오늘의 주제

  • Git을 많이 쓰는 이유
  • Git 쉽게 시작하기

Git

소스코드 관리를 위한 분산 버전 관리 시스템

분산 버전 관리?

  • 중앙 서버에만 의존하지 않는다.
  • 모든 것은 로컬에 저장

왜 이런것이 필요할까?

오픈소스

Git

모든 것을 로컬로 가져온다.

  • 커밋, 로그를 로컬에서!!
  • 빠르다!!
  • 내가 원하는 시점에 서버에 공유

X, Y ?

        function opensource(x, y) {
          if (!!x && !!y)
            return SUCCESS;
          else
            return BRUTAL_FAIL;
        }

        opensource(); // ??
          

공유 & 협업

공유 & 협업을 위해서는

  • 새로운 기능을 쉽게 추가, 테스트
  • 의미있는 커밋을 작성할 수 있는 도구
  • 작성한 코드를 손쉽게 공유

Git

  • Branch
  • Stage
  • Remote

Git

서버에 의존이 적은 분산 버전 관리 시스템

공유와 협업이 강조되는 오픈소스 프로젝트에 사용하기 적합

꼭 오픈소스가 아니더라도

  • 동일한 제품을 여러개의 버전(branch) 로 운영하는 경우
  • 대규모 인원이 투입되는 프로젝트
  • 새로운 기능의 추가와 삭제가 빈번하게 일어나는 프로젝트

Demo

Branch, Stage, Remote

내가 코드를 수정하고 있는 사이에, 친구가 자신의 수정 결과를 확인해 달라고 요청했을 때

Git을 사용하는 프로젝트들

Git, android, kernel, chromium, node.js, jQuery, oh-my-zsh, homebrew, Eclipse 등등

시작하기

Git은 어렵다.

  • 깔끔한 커밋과 히스토리 작성을 위한 명령어
  • 이게 싫으시면...

설치하기

http://git-scm.com

Github

https://github.com/

꼭 설치해야 되나요?

Git 내부 구조 (살짝만)

  • .git/objects 디렉토리
  • Commit, Tree, Blob
  • git cat-file -p
  • demo

프로 Git

로컬 테스트

      $ git init --bare
      $ git clone <remote> <target>
          
demo

더 보기

  • Branch
  • Rebase
  • Bisect

distributed-is-the-new-centralized