책 소개
요약
깃(Git)은 오픈 소스로 제공되는 분산 버전 관리 시스템이다. 깃을 이용하면 다수의 사용자가 동시에 접근할 수 있는 파일과 폴더의 버전을 다양하게 유지하면서 복잡한 개발 프로젝트를 수행할 수 있다. 협업을 하는 것도 각자가 독립적으로 진행하는 것도 가능하며, 텍스트 기반 파일은 번거로움 없이 원활하게 병합이 가능하다.
이 책은 버전 관리를 단계별 학습으로 제공하고, 일상적인 업무에 적용하는 방법도 안내한다. 개발자, 운영자, 시스템 분석가, 소프트웨어 시스템 설계자 등 누구에게나 쉽고 유용할 것이다.
이 책에서 다루는 내용
■ 버전 관리 시스템의 개념과 필요한 이유
■ 기기에 깃을 설치하고 설정하는 방법
■ 깃의 기본 개념과 버전 관리를 시작하는 방법
■ 버전 관리 파일에 대한 공유와 협업
■ 매일 생산성을 향상시킬 수 있는 비결
■ 분기(branch)와 분산 작업
■ 생산성 향상을 위한 팁
■ 깃을 강화할 수 있는 추가 도구
■ 깃을 이용해 텍스트 기반 파일의 운용을 확장하는 방법
■ 윈도우와 리눅스, 맥을 아우르는 그래픽과 명령어 모드를 이용한 개념
이 책의 구성
1장, 버전 관리 시스템 소개에서는 버전 관리 시스템의 개념과 소개, 변천사와 필요성, 그리고 깃이 버전 관리 시스템 중에서 최고로 꼽히는 이유를 알아본다.
2장, 깃 설치에서는 운영체제 별 깃 설치 방법을 안내한다.
3장, 매일의 생산성 증대에서는 깃으로 파일의 버전을 관리할 때 알아야 할 기본적이고 중요한 5가지 개념(저장소(Repository) 준비, 파일 추가, 파일 커밋(commit), 버전 관리 시작, 체크아웃을 사용한 복구, 리셋)을 설명한다.
4장, 깃을 이용한 분산 작업에서는 인트라넷과 인터넷 등 다양한 매체를 통해 콘텐츠를 공유하는 협업 개발의 요점을 알려주고 여러 사람이 각기 다른 장소에서 함께 작업하기 위한 다양한 방법을 제시한다.
5장, 깃의 고급 기능에서는 1~4장에서 익힌 깃의 일반적인 동작들을 다양한 상황에서 향상시킬 수 있는 팁과 유용한 정보를 설명한다.
6장, 텍스트 기반 파일을 위한 깃에서는 깃의 가장 강력한 장점 중 하나인 병합(merging)이라는 새로운 기능을 알아본다. 콘텐츠를 병합하는 방법과 병합 과정에서 발생할 수 있는 충돌(Conflict)을 해결하는 방법을 설명한다.
7장, 깃을 사용한 분기(branching)에서는 깃에서 가장 높게 평가 받는 기능 중 하나인 분기(branching)의 중요성과 작업 모드를 변경하는 방법을 설명한다.
8장, 깃의 원리에서는 깃의 내부 동작 방식을 심도 있게 살펴보고, 그것들을 간단한 단어로 이해한다. 1~7장에서 실행했던 여러 가지 깃 명령이 실행될 때 어떻게 동작하는지 기초적인 수행 과정도 설명한다.
목차
목차
- 1 버전 관리 시스템 소개
- 무엇을 도와드릴까요?
- 버전 관리 시스템이란?
- 버전 관리 시스템이 필요한 이유
- 버전 관리 시스템의 종류
- 로컬 버전 관리 시스템
- 토막 상식
- 중앙 집중형 버전 관리 시스템
- 분산 버전 관리 시스템
- 로컬 버전 관리 시스템
- 깃에 빠져들다
- 원자성
- 성능
- 안정성
- 정리
- 2 깃 설치
- 유형 선택: 운영체제에 적합한 패키지 다운로드
- 윈도우
- 리눅스
- 맥
- 설치
- 실습 예제 | 깃을 윈도우에 설치
- 실습 예제 | 맥에 깃 설치
- 실습 예제 | 리눅스에 깃 설치
- 정리
- 유형 선택: 운영체제에 적합한 패키지 다운로드
- 3 매일의 생산성 증대
- 준비: 깃 준비
- 초기화
- 실습 예제 | GUI 모드에서 초기화
- 실습 예제 | CLI 모드에서 초기화
- 화면 뒤에서 일어난 일
- 깃 설정
- 실습 예제 | GUI 모드에서 깃 설정
- 되돌아가기
- 실습 예제 | CLI 모드에서 Git 설정
- 디렉토리에 파일 추가
- 실습 예제 | (GUI와 CLI 모드에서) 디렉토리에 파일 추가
- 파일 추적 배제
- 번거로운 작업
- 구원의 .gitignore
- 실습 예제 | .ginignore의 사용 방법
- 추가 되돌리기
- 추가된 파일 커밋
- 실습 예제 | GUI 모드에서 파일 커밋
- 실습 예제 | CLI 모드에서 파일 커밋
- 실습 예제 | GUI 모드에서 재스캔
- 체크아웃
- 실습 예제 | GUI 모드에서 체크아웃
- 실습 예제 | CLI 모드에서 체크아웃
- 리셋
- 실습 예제 | GUI 모드에서 리셋
- 실습 예제 | CLI 모드에서 리셋
- 깃 도움말
- 정리
- 4 깃을 이용한 분산 작업
- 파일을 공유해야 하는 이유
- 시나리오 1: 1인 플레이어
- 시나리오 2: 동시에 여러 명의 플레이어 접속
- 원격지의 소스를 푸시하고 풀하기
- 시나리오 1: 해결책
- 공개: 인터넷을 통해 공유
- 실습 예제 | CLI 모드에서 원격지의 origin 추가
- 실습 예제 | CLI 모드를 이용해 다른 곳에서 작업 시도
- 실습 예제 | GUI 모드에서 원격 origin 추가
- 실습 예제 | GUI 모드를 이용해서 작업 재개
- 시나리오 2: 해결책
- 비트버킷 저장소에 사용자들 초대
- 로컬에 머무르기: 인트라넷으로 공유
- 실습 예제 | CLI 모드에서 노출된 저장소 생성
- 실습 예제 | GUI 모드에서 노출된 저장소 생성
- 정리
- 파일을 공유해야 하는 이유
- 5 깃의 고급 기능
- 고급 기능을 배워야 하는 이유
- 준비물
- Shortlog
- 실습 예제 | 짧은 로그에 대한 지식 얻기
- 실습 예제 | 짧은 로그의 파라미터
- 로그 검색: git log
- 실습 예제 | 커밋 로그 건너뛰기
- 실습 예제 | 날짜 범위를 지정해 로그 필터
- 실습 예제 | 단어나 철자 검색
- 청소
- 실습 예제 | 엉망진창으로 흐트리기
- 실습 예제 | 패턴에 부합하는 혼란한 상태를 말끔히 청소
- 실습 예제 | 에러 없이 혼란 상태를 완벽히 쓸어내기
- 태깅
- 실습 예제 | 경량/비주석 태그
- 실습 예제 | 태그 참조
- 실습 예제 | 주석 태그 사용
- 간단한 실습
- 정리
- 고급 기능을 배워야 하는 이유
- 6 텍스트 기반 파일을 위한 깃
- 텍스트 기반 파일을 위한 깃: 소개
- 멀티플레이어 모드: 동시에 여러 명의 플레이어
- 한 번에 한 명씩만 하는 다중 플레이어
- 다중 플레이어: 모든 손을 탁자 위에
- 저장소 공유
- 실습 예제 | 공유 준비
- 실습 예제 | 강제 분산 작업
- 실습 예제 | Bob의 변경
- 실습 예제 | Lisa의 변경
- 실습 예제 | Lisa의 병합 충돌 시험
- 실습 예제 | Lisa의 병합 충돌 해결
- GUI 모드: 저장소 이력 그래프 확인
- CLI 모드: 저장소 이력 그래프 확인
- 실습 예제 | 중앙 노출된 저장소에 대한 동기화 처리
- 정리
- 7 깃을 사용한 분기
- 분기란?
- 왜 분기가 필요한가
- 명명 규약
- 분기가 필요할 때
- 깃으로 분기
- 시나리오
- 실습 예제 | GUI 모드에서 분기 생성
- 실습 예제 | CLI 모드에서 분기 생성
- .config 파일: 축약어 사용
- 실습 예제 | CLI에서 간단한 에일리어스 추가
- 실습 예제 | CLI에서 하나의 에일리어스에 명령 엮기
- 실습 예제 | GUI에서 복잡한 에일리어스 추가
- 정리
- 8 깃의 원리
- 깃의 두 면모: 배관과 애자
- 깃 초기화
- Hooks
- Info
- Config
- Description
- Objects
- Blob
- Trees
- Commits
- Tags
- HEAD
- Refs
- heads와 tags 디렉토리 내부에서 충돌 알림
- Index
- 깃: 콘텐츠 추적 시스템
- 깃 추가
- 깃 커밋
- 깃 상태
- 깃 복제
- 깃 원격
- 깃 분기
- 깃 태그
- 깃 패치
- 깃 병합
- 깃 풀
- 깃 푸시
- 깃 체크아웃
- 관계와 관계를 엮기: 깃 packfiles
- packfile 전송
- 정리
도서 오류 신고
정오표
정오표
[p.74 : 아래에서 2행]
저징소
->
저장소
[p.105 : 아래에서 2행]
Report > Fetch from > Origin을
->
Remote > Fetch from > Origin을
[p.96 : 6행 ]
I have code I wnat to import
->
I have code I want to import.
[p.113 : 그림 ]
Origin/non bare responsitory
->
Origin/non bare repository
[p.122 : 도표]
-numbered -> --numbered
-summary -> --summary
-email -> --email
-help -> --help
[p.149 : 3행]
First line fromo source
->
First line from source
[p.168 : 9행]
participante
->
participant
[p.169 : 8행]
participante
->
participant