Git 교과서
코드 이력, 하나도 놓치지 마라!
Regular price
$22.47
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
기본기를 탄탄하게 다지는 깃(git) 입문서
도해와 실습으로 깃, 소스트리, 깃허브를 배우자!
버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 만든 문제인지 알 수 있고, 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다. 이 책은 대표적인 버전 관리 시스템인 깃의 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 깃 입문자가 꼭 알아야 할 내용을 설명한다. 또한, 깃 명령어와 소스트리, 깃허브를 연동해 실습하고, 필요한 내용은 도해로 살펴보면서 깃의 동작 원리를 이해할 수 있다. 이제 막 깃을 시작했거나 깃을 배우고자 하는 사람에게 도움이 될 것이다.
도해와 실습으로 깃, 소스트리, 깃허브를 배우자!
버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 만든 문제인지 알 수 있고, 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다. 이 책은 대표적인 버전 관리 시스템인 깃의 설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 깃 입문자가 꼭 알아야 할 내용을 설명한다. 또한, 깃 명령어와 소스트리, 깃허브를 연동해 실습하고, 필요한 내용은 도해로 살펴보면서 깃의 동작 원리를 이해할 수 있다. 이제 막 깃을 시작했거나 깃을 배우고자 하는 사람에게 도움이 될 것이다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
독립 프로젝트에서 팀 프로젝트까지
버전 관리로 안전하게 개발한다!
왜 버전 관리 시스템인가?
버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 언제 만든 문제인지도 알 수 있다. 특히 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다는 것이 가장 큰 장점이다. 대표적인 버전 관리 시스템인 깃을 사용해 손쉽게 버전을 관리해보자.
원리를 알고 더 효율적으로 사용하자
깃은 크게 워킹 디렉터리, 스테이지 영역, 저장소로 구분할 수 있다. 워킹 디렉터리는 '작업하는 공간', 스테이지 영역은 '임시로 저장하는 공간', 저장소는 '실제로 저장해 기록하는 공간'을 의미한다. 또한, tracked, stage, modified와 같은 상황별 파일의 상태도 잘 구분해야 한다. 이러한 개념들을 잘 표현한 140개 도해와 단계별 실습으로 깃 저장소의 동작 원리를 이해하고, 깃을 좀 더 효율적으로 사용할 수 있다.
깃, 깃허브, 소스트리로 직접 실행하며 이해하자
설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 '퀵 가이드'로 동작 흐름을 미리 살펴본 후 이 흐름에 맞춰 모든 내용을 단계별로 실습해볼 수 있다. 깃 명령어와 소스트리, 깃허브를 사용해 직접 실습하면서 책에서 설명한 내용을 확실하게 이해해보자.
버전 관리로 안전하게 개발한다!
왜 버전 관리 시스템인가?
버전 관리 시스템(VCS)은 파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. VCS를 사용하면 파일이나 프로젝트를 이전 상태로 되돌릴 수 있고, 시간에 따라 수정 내용을 비교해볼 수도 있다. 또한, 문제가 있을 때 누가 언제 만든 문제인지도 알 수 있다. 특히 파일을 분실하거나 잘못 수정했을 때 손쉽게 복구가 가능하다는 것이 가장 큰 장점이다. 대표적인 버전 관리 시스템인 깃을 사용해 손쉽게 버전을 관리해보자.
원리를 알고 더 효율적으로 사용하자
깃은 크게 워킹 디렉터리, 스테이지 영역, 저장소로 구분할 수 있다. 워킹 디렉터리는 '작업하는 공간', 스테이지 영역은 '임시로 저장하는 공간', 저장소는 '실제로 저장해 기록하는 공간'을 의미한다. 또한, tracked, stage, modified와 같은 상황별 파일의 상태도 잘 구분해야 한다. 이러한 개념들을 잘 표현한 140개 도해와 단계별 실습으로 깃 저장소의 동작 원리를 이해하고, 깃을 좀 더 효율적으로 사용할 수 있다.
깃, 깃허브, 소스트리로 직접 실행하며 이해하자
설치부터 커밋, 브랜치, 임시 처리, 병합, 복귀, 서브모듈, 태그까지 '퀵 가이드'로 동작 흐름을 미리 살펴본 후 이 흐름에 맞춰 모든 내용을 단계별로 실습해볼 수 있다. 깃 명령어와 소스트리, 깃허브를 사용해 직접 실습하면서 책에서 설명한 내용을 확실하게 이해해보자.
목차
목차
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 정리
자주 사용하는 명령어 모음
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 정리
자주 사용하는 명령어 모음
저자
저자
이호진
전기전자를 전공했으며, 마이크로프로세서, 하드웨어 설계 및 펌웨어, 로봇, 산업용 레이저 프린터, ARM 등을 개발했다. 또한, 언어 분석과 알고리즘 개발도 했다. 외국계 기업에서 리눅스 운영 체제, 백업 및 서버 가상화 등 다양한 비즈니스를 경험했고, 최근에는 웹 및 모바일 관련 개발 활동에 주력하고 있다.
오픈 소스로 jinyPHP를 개발 중이며, 후배들에게 경험과 지식을 전달하기 위해 강의와 집필 활동에 전념하고 있다.
오픈 소스로 jinyPHP를 개발 중이며, 후배들에게 경험과 지식을 전달하기 위해 강의와 집필 활동에 전념하고 있다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

