HOME > Detail View

Detail View

Git 교과서 : 코드 이력, 하나도 놓치지 마라! (Loan 6 times)

Material type
단행본
Personal Author
이호진
Title Statement
Git 교과서 = Git textbook : 코드 이력, 하나도 놓치지 마라! / 이호진 지음
Publication, Distribution, etc
서울 :   길벗,   2020  
Physical Medium
432 p. : 삽화 ; 24 cm
ISBN
9791165210885
General Note
색인수록  
000 00000cam c2200205 c 4500
001 000046023272
005 20200408141504
007 ta
008 200408s2020 ulka 001c kor
020 ▼a 9791165210885 ▼g 93000
035 ▼a (KERIS)BIB000015545096
040 ▼a 223009 ▼c 223009 ▼d 223009 ▼d 241026 ▼d 211009
082 0 4 ▼a 005.1 ▼2 23
085 ▼a 005.1 ▼2 DDCK
090 ▼a 005.1 ▼b 2020z2
100 1 ▼a 이호진
245 1 0 ▼a Git 교과서 = ▼x Git textbook : ▼b 코드 이력, 하나도 놓치지 마라! / ▼d 이호진 지음
246 3 ▼a 깃 교과서
260 ▼a 서울 : ▼b 길벗, ▼c 2020
300 ▼a 432 p. : ▼b 삽화 ; ▼c 24 cm
500 ▼a 색인수록
945 ▼a KLPA

No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.1 2020z2 Accession No. 111827270 Availability Available Due Date Make a Reservation Service B M
No. 2 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.1 2020z2 Accession No. 521005199 Availability Available Due Date Make a Reservation Service B M
No. 3 Location Sejong Academic Information Center/Science & Technology/ Call Number 005.1 2020z2 Accession No. 151350173 Availability Available Due Date Make a Reservation Service
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Main Library/Monographs(3F)/ Call Number 005.1 2020z2 Accession No. 111827270 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Science & Engineering Library/Sci-Info(Stacks1)/ Call Number 005.1 2020z2 Accession No. 521005199 Availability Available Due Date Make a Reservation Service B M
No. Location Call Number Accession No. Availability Due Date Make a Reservation Service
No. 1 Location Sejong Academic Information Center/Science & Technology/ Call Number 005.1 2020z2 Accession No. 151350173 Availability Available Due Date Make a Reservation Service

Contents information

Book Introduction

버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 만든 문제인지 알 수 있고, 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다.

대표적인 버전 관리 시스템인 깃의 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 깃 입문자가 꼭 알아야 할 내용을 설명한다. 또한, 깃 명령어와 소스트리, 깃허브를 연동해 실습하고, 필요한 내용은 도해로 살펴보면서 깃의 동작 원리를 이해할 수 있다. 이제 막 깃을 시작했거나 깃을 배우고자 하는 사람에게 추천한다.

독립 프로젝트에서 팀 프로젝트까지
버전 관리로 안전하게 개발한다!

왜 버전 관리 시스템인가?

버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 언제 만든 문제인지도 알 수 있다. 특히 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다는 것이 가장 큰 장점이다. 대표적인 버전 관리 시스템인 깃을 사용해 손쉽게 버전을 관리해보자.

원리를 알고 더 효율적으로 사용하자

깃은 크게 워킹 디렉터리, 스테이지 영역, 저장소로 구분할 수 있다. 워킹 디렉터리는 ‘작업하는 공간’, 스테이지 영역은 ‘임시로 저장하는 공간’, 저장소는 ‘실제로 저장해 기록하는 공간’을 의미한다. 또한, tracked, stage, modified와 같은 상황별 파일의 상태도 잘 구분해야 한다. 이러한 개념들을 잘 표현한 140개 도해와 단계별 실습으로 깃 저장소의 동작 원리를 이해하고, 깃을 좀 더 효율적으로 사용할 수 있다.

깃, 깃허브, 소스트리로 직접 실행하며 이해하자

설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 ‘퀵 가이드’로 동작 흐름을 미리 살펴본 후 이 흐름에 맞춰 모든 내용을 단계별로 실습해볼 수 있다. 깃 명령어와 소스트리, 깃허브를 사용해 직접 실습하면서 책에서 설명한 내용을 확실하게 이해해보자.



Information Provided By: : Aladin

Author Introduction

이호진(지은이)

전기전자를 전공했으며, 마이크로프로세서, 하드웨어 설계 및 펌웨어, 로봇, 산업용 레이저 프린터, ARM 등을 개발했다. 또한, 언어 분석과 알고리즘 개발도 했다. 외국계 기업에서 리눅스 운영 체제, 백업 및 서버 가상화 등 다양한 비즈니스를 경험했고, 최근에는 웹 및 모바일 관련 개발 활동에 주력하고 있다. 오픈 소스로 jinyPHP를 개발 중이며, 후배들에게 경험과 지식을 전달하기 위해 강의와 집필 활동에 전념하고 있다.

Information Provided By: : Aladin

Table of Contents

1장 깃과 버전 관리
1.1 버전 관리
__1.1.1 버전이란?
__1.1.2 버전 관리는 왜 필요할까?
1.2 버전 관리 시스템
__1.2.1 버전 관리 소프트웨어
1.3 깃
__1.3.1 백업 기능
__1.3.2 협업 개발
1.4 깃의 동작 한눈에 보기
1.5 정리

2장 깃과 소스트리 설치 및 환경 설정
2.1 깃 설치
__2.1.1 윈도에서 설치
__2.1.2 리눅스에서 설치
__2.1.3 macOS에서 설치
2.2 소스트리 설치
__2.2.1 설치 파일 내려받기
__2.2.2 설치
2.3 첫 번째 깃 실행
__2.3.1 터미널
__2.3.2 깃 명령어로 실행
__2.3.3 소스트리로 실행
2.4 환경 설정
__2.4.1 config 명령어
__2.4.2 로컬 사용자
__2.4.3 글로벌 사용자(추천)
__2.4.4 환경 설정 파일 확인 및 직접 수정
__2.4.5 소스트리의 환경 설정
__2.4.6 별칭
2.5 비주얼 스튜디오 코드
2.6 정리

3장 깃 개념 잡기
3.1 깃 저장소 생성
__3.1.1 폴더와 깃 저장소
__3.1.2 초기화
__3.1.3 숨겨진 폴더 = .git 폴더
__3.1.4 소스트리와 연결
3.2 워킹 디렉터리
__3.2.1 워킹 디렉터리란?
__3.2.2 파일의 untracked 상태와 tracked 상태
3.3 스테이지
__3.3.1 스테이지 = 임시 영역
__3.3.2 파일의 stage 상태와 unstage 상태
__3.3.3 파일의 modified 상태와 unmodified 상태
3.4 파일의 상태 확인
__3.4.1 status 명령어로 깃 상태 확인
__3.4.2 소스트리에서 깃 상태 확인
3.5 파일 관리 목록에서 제외: .gitignore
__3.5.1 .gitignore 파일
__3.5.2 .gitignore 파일 표기법
3.6 깃 저장소 복제
__3.6.1 공개 저장소
__3.6.2 다운로드 vs 복제
__3.6.3 복제 명령어
3.7 정리

4장 커밋
4.1 코드의 변화
__4.1.1 파일 관리 방법
4.2 새 파일 생성 및 감지
__4.2.1 새 파일 생성
__4.2.2 깃에서 새 파일 생성 확인
__4.2.3 소스트리에서 새 파일 감지
4.3 깃에 새 파일 등록
__4.3.1 스테이지에 등록
__4.3.2 파일의 추적 상태 확인
__4.3.3 파일 등록 취소
__4.3.4 등록된 파일 이름이 변경되었을 때
4.4 첫 번째 커밋
__4.4.1 HEAD
__4.4.2 스냅샷
__4.4.3 파일 상태와 커밋
4.5 커밋 확인
__4.5.1 스테이지 초기화
__4.5.2 로그 기록 확인
__4.5.3 소스트리에서 로그 기록 확인
4.6 두 번째 커밋
__4.6.1 파일 수정
__4.6.2 파일 변경 사항 확인
__4.6.3 수정된 파일 되돌리기
__4.6.4 스테이지에 등록
__4.6.5 두 번째 커밋
__4.6.6 두 번째 커밋 확인
__4.6.7 깃허브에서 확인
4.7 메시지가 없는 빈 커밋
__4.7.1 세 번째 커밋
__4.7.2 소스트리에서 빈 커밋
__4.7.3 빈 커밋 확인
4.8 커밋 아이디
__4.8.1 SHA1
__4.8.2 단축키
4.9 커밋 로그
__4.9.1 간략 로그
__4.9.2 특정 파일의 로그
4.10 diff 명령어
__4.10.1 파일 간 차이
__4.10.2 워킹 디렉터리 vs 스테이지 영역
__4.10.3 커밋 간 차이
__4.10.4 소스트리에서 간단하게 변경 이력 확인
__4.10.5 diff 내용을 추가하여 커밋
4.11 정리

5장 서버
5.1 서버 저장소
__5.1.1 협업 저장소
__5.1.2 연속된 작업
__5.1.3 새 멤버
5.2 깃허브 서버 준비
__5.2.1 깃허브
__5.2.2 저장소 생성
5.3 깃허브 연동 및 원격 등록
__5.3.1 로컬 저장소
__5.3.2 프로토콜
__5.3.3 원격 저장소의 리모트 목록 관리
__5.3.4 주소와 별칭
__5.3.5 원격 저장소에 연결
__5.3.6 소스트리에서 원격 브랜치
__5.3.7 별칭 이름 변경과 정보
__5.3.8 원격 서버 삭제
5.4 서버 전송
__5.4.1 push: 서버에 전송
5.5 자동으로 내려받기
__5.5.1 clone: 복제
__5.5.2 pull: 서버에서 내려받기
5.6 수동으로 내려받기
__5.6.1 자동 병합
__5.6.2 fetch: 가져오기
__5.6.3 merge 명령어로 수동 병합
5.7 순서
__5.7.1 최신 상태
__5.7.2 충돌 방지
5.8 정리

6장 브랜치
6.1 새로운 작업
__6.1.1 브랜치 작업
__6.1.2 깃 브랜치 특징
6.2 실습 준비
__6.2.1 저장소 생성 및 초기화
__6.2.2 기본 브랜치
6.3 브랜치 생성
__6.3.1 브랜치 생성
__6.3.2 브랜치 이름
__6.3.3 소스트리 브랜치
6.4 브랜치 확인
__6.4.1 간단 브랜치 목록
__6.4.2 브랜치 해시
__6.4.3 브랜치 세부 사항 확인
6.5 브랜치 이동
__6.5.1 체크아웃
__6.5.2 브랜치 동작 원리
__6.5.3 소스트리
__6.5.4 이전 브랜치
__6.5.5 워킹 디렉터리 정리
6.6 브랜치 공간
__6.6.1 브랜치 로그
__6.6.2 브랜치 소스 확인
6.7 HEAD 포인터
__6.7.1 마지막 커밋
__6.7.2 브랜치 HEAD
__6.7.3 소스트리 HEAD
__6.7.4 상대적 위치
__6.7.5 AHEAD, BHEAD
6.8 생성과 이동
__6.8.1 자동 이동 옵션
__6.8.2 커밋 이동
__6.8.3 HEAD를 활용한 이동
__6.8.4 돌아오기
6.9 원격 브랜치
__6.9.1 리모트 브랜치
__6.9.2 실습 준비
__6.9.3 브랜치 추적
__6.9.4 브랜치 업로드
__6.9.5 이름이 다른 브랜치
__6.9.6 업스트림 트래킹
__6.9.7 원격 브랜치 복사
__6.9.8 업스트림 연결
6.10 브랜치 전송
__6.10.1 브랜치 푸시
__6.10.2 브랜치 페치
6.11 브랜치 삭제
__6.11.1 일반적인 삭제 방법
__6.11.2 강제로 삭제하는 방법
__6.11.3 소스트리에서 삭제하는 방법
__6.11.4 리모트 브랜치를 삭제하는 방법
6.12 정리

7장 임시 처리
7.1 스태시
__7.1.1 기존 작업 도중에 새로운 변경 요청
__7.1.2 새 코드 작성 중 기존 코드를 수정
__7.1.3 스태시의 임시 스택 영역에 작업 중인 코드 저장
__7.1.4 임시 저장 영역의 스택 목록
__7.1.5 임시 저장한 스태시 불러오기
__7.1.6 스태시 복원으로 충돌
__7.1.7 스태시 복사
__7.1.8 스태시 삭제
__7.1.9 소스트리에서 스태시 사용
7.2 워킹 디렉터리 청소
7.3 정리

8장 병합과 충돌
8.1 병합
__8.1.1 하나씩 직접 비교하는 수동 병합
__8.1.2 깃으로 자동 병합
__8.1.3 병합 방식
8.2 Fast-Forward 병합
__8.2.1 브랜치 생성과 수정 작업
__8.2.2 병합 위치
__8.2.3 Fast-Forward 병합 적용
8.3 3-way 병합
__8.3.1 브랜치 생성과 수정 작업
__8.3.2 마스터 변경
__8.3.3 공통 조상
__8.3.4 병합 커밋
__8.3.5 병합 메시지
8.4 브랜치 삭제
__8.4.1 병합 후 삭제
8.5 충돌
__8.5.1 충돌이 생기는 상황
__8.5.2 실습을 위한 충돌 만들기
__8.5.3 수동으로 충돌 해결
__8.5.4 소스트리에서 충돌 해결
8.6 브랜치 병합 여부 확인
8.7 리베이스
__8.7.1 베이스
__8.7.2 베이스 변경
__8.7.3 리베이스 vs 병합
__8.7.4 리베이스 명령어
__8.7.5 리베이스 병합
__8.7.6 리베이스되었는지 확인
__8.7.7 리베이스 후 브랜치
__8.7.8 리베이스 충돌과 해결
__8.7.9 rebase 명령어로 커밋 수정
__8.7.10 리베이스할 때 주의할 점
8.8 정리

9장 복귀
9.1 되돌리기
__9.1.1 다시 시작
9.2 리셋
__9.2.1 복귀 시점
__9.2.2 reset 명령어
__9.2.3 soft 옵션
__9.2.4 mixed 옵션
__9.2.5 hard 옵션
__9.2.6 소스트리
__9.2.7 커밋 합치기
__9.2.8 스테이지 리셋
__9.2.9 작업 취소
__9.2.10 병합 취소
__9.2.11 주의할 점
9.3 리버트
__9.3.1 취소 커밋
__9.3.2 리버트 지정
__9.3.3 소스트리에서 리버트
__9.3.4 병합 취소
__9.3.5 리버트 히스토리
9.4 정리

10장 배포 관리와 태그
10.1 배포
10.2 버전
10.3 태그
10.4 태그 목록
10.5 Annotated 태그
__10.5.1 태그 생성
__10.5.2 간단한 메시지
__10.5.3 소스트리에서 태그 생성
__10.5.4 태그는 중복해서 생성할 수 없다
__10.5.5 태그 삭제
__10.5.6 태그의 상세 정보 확인: show 명령어
10.6 Lightweight 태그
__10.6.1 체크섬
__10.6.2 태그의 상세 정보 확인
10.7 특정 커밋 태그
__10.7.1 소스트리에서 특정 커밋 지정
10.8 태그를 사용한 체크아웃
__10.8.1 태그 브랜치
10.9 태그 공유
__10.9.1 원격 저장소 생성
__10.9.2 태그 동기화
__10.9.3 전체 태그 동기화
__10.9.4 원격 저장소의 태그 수정과 삭제
__10.9.5 원격 저장소에 로컬과 다른 이름으로 태그 전송
10.10 정리

11장 서브모듈
11.1 대형 프로젝트
__11.1.1 저장 용량
__11.1.2 저장소 분리
__11.1.3 상하 관계
11.2 실습을 위한 저장소 준비
__11.2.1 메인 저장소 생성
__11.2.2 자식 저장소 생성
11.3 서브모듈 추가
__11.3.1 저장소 연결
__11.3.2 설정 파일
__11.3.3 모듈 커밋
11.4 서브모듈 작업
__11.4.1 모듈 저장소
__11.4.2 모듈 상태
__11.4.3 모듈 커밋
__11.4.4 부모 커밋
11.5 자식 저장소 갱신
__11.5.1 자식 저장소
__11.5.2 자식 저장소 갱신
__11.5.3 자식 저장소 작업
__11.5.4 부모 저장소 적용
__11.5.5 부모 저장소 갱신
11.6 부모 저장소 복제
__11.6.1 부모 저장소 복제
__11.6.2 모듈 업데이트
11.7 부모 저장소 업데이트
__11.7.1 부모 업데이트
__11.7.2 부모 저장소로 풀
11.8 정리

12장 고급 기능
12.1 refs
__12.1.1 실습 환경 준비
__12.1.2 해시
__12.1.3 역조회
__12.1.4 참조 목록
12.2 reflog
__12.2.1 참조 기록
__12.2.2 기록 확인
__12.2.3 기간 확인
__12.2.4 기록 유지
12.3 파일 애너테이션
__12.3.1 blame
__12.3.2 실습 환경 준비
__12.3.3 blame 명령어
__12.3.4 옵션 활용
12.4 replace
__12.4.1 실습 환경 준비
__12.4.2 저장소 분리
__12.4.3 저장소 분리
__12.4.4 저장소 연결
12.5 가비지 콜렉트
__12.5.1 가비지
__12.5.2 압축 관리
__12.5.3 실행
__12.5.4 refs 압축
__12.5.5 환경 설정
12.6 prune
__12.6.1 고립된 객체
__12.6.2 실습 환경 준비
__12.6.3 객체 삭제
__12.6.4 객체 정리
__12.6.5 원격 작업
12.7 rerere
__12.7.1 동일한 충돌
__12.7.2 활성화
__12.7.3 실습 준비
__12.7.4 충돌 및 기록
__12.7.5 자동 해결
12.8 정리

자주 사용하는 명령어 모음

New Arrivals Books in Related Fields

Ramamurthy, Bina (2021)
윤관식 (2020)