서브메뉴

본문

Git을 이용한 버전 관리 (각종 OS별 사용법부터 기본 원리와 고급 활용까지)
Git을 이용한 버전 관리 (각종 OS별 사용법부터 기본 원리와 고급 활용까지)
저자 : 라비샨카 소마순다람
출판사 : 에이콘출판
출판년 : 2014
ISBN : 9788960775473

책소개

acorn+PACKT 시리즈. 이 책은 깃을 사용해본 경험이 없는 사용자가 깃 버전 관리 시스템(Git Version Control System)을 사용해 모든 형태의 전자 데이터를 효과적으로 처리하고 생산성을 향상시킬 수 있도록 안내한다.



설치 과정을 안내하는 단계별 예제와 실행 화면을 통해 데이터 버전 관리 최적의 도구인 깃의 개념을 이해할 수 있도록 구성했다. 각 장은 단순하고 일상적인 사례와 비유를 들어 개념을 설명하며, 이를 통해 유용한 학습 경험을 얻을 수 있다.



버전 관리 시스템의 개념과 필요한 이유, 기기에 깃을 설치하고 설정하는 방법, 깃의 기본 개념과 버전 관리를 시작하는 방법, 버전 관리 파일에 대한 공유와 협업, 깃을 강화할 수 있는 추가 도구, 윈도우와 리눅스, 맥을 아우르는 그래픽과 명령어 모드를 이용한 개념 등을 다루고 있다.
[알라딘에서 제공한 정보입니다.]

출판사 서평

깃(Git)은 오픈 소스로 제공되는 분산 버전 관리 시스템이다. 깃을 이용하면 다수의 사용자가 동시에 접근할 수 있는 파일과 폴더의 버전을 다양하게 유지하면서 복잡한 개발 프로젝트를 수행할 수 있다. 협업을 하는 것도 각자가 독립적으로 진행하는 것도 가능하며, 텍스트 기반 파일은 번거로움 없이 원활하게 병합이 가능하다.
이 책은 버전 관리를 단계별 학습으로 제공하고, 일상적인 업무에 적용하는 방법도 안내한다. 개발자, 운영자, 시스템 분석가, 소프트웨어 시스템 설계자 등 누구에게나 쉽고 유용할 것이다.

★ 이 책에서 다루는 내용 ★

■ 버전 관리 시스템의 개념과 필요한 이유
■ 기기에 깃을 설치하고 설정하는 방법
■ 깃의 기본 개념과 버전 관리를 시작하는 방법
■ 버전 관리 파일에 대한 공유와 협업
■ 매일 생산성을 향상시킬 수 있는 비결
■ 분기(branch)와 분산 작업
■ 생산성 향상을 위한 팁
■ 깃을 강화할 수 있는 추가 도구
■ 깃을 이용해 텍스트 기반 파일의 운용을 확장하는 방법
■ 윈도우와 리눅스, 맥을 아우르는 그래픽과 명령어 모드를 이용한 개념

★ 이 책의 구성 ★

1장, 버전 관리 시스템 소개에서는 버전 관리 시스템의 개념과 소개, 변천사와 필요성, 그리고 깃이 버전 관리 시스템 중에서 최고로 꼽히는 이유를 알아본다.

2장, 깃 설치에서는 운영체제 별 깃 설치 방법을 안내한다.

3장, 매일의 생산성 증대에서는 깃으로 파일의 버전을 관리할 때 알아야 할 기본적이고 중요한 5가지 개념(저장소(Repository) 준비, 파일 추가, 파일 커밋(commit), 버전 관리 시작, 체크아웃을 사용한 복구, 리셋)을 설명한다.

4장, 깃을 이용한 분산 작업에서는 인트라넷과 인터넷 등 다양한 매체를 통해 콘텐츠를 공유하는 협업 개발의 요점을 알려주고 여러 사람이 각기 다른 장소에서 함께 작업하기 위한 다양한 방법을 제시한다.

5장, 깃의 고급 기능에서는 1~4장에서 익힌 깃의 일반적인 동작들을 다양한 상황에서 향상시킬 수 있는 팁과 유용한 정보를 설명한다.

6장, 텍스트 기반 파일을 위한 깃에서는 깃의 가장 강력한 장점 중 하나인 병합(merging)이라는 새로운 기능을 알아본다. 콘텐츠를 병합하는 방법과 병합 과정에서 발생할 수 있는 충돌(Conflict)을 해결하는 방법을 설명한다.

7장, 깃을 사용한 분기(branching)에서는 깃에서 가장 높게 평가 받는 기능 중 하나인 분기(branching)의 중요성과 작업 모드를 변경하는 방법을 설명한다.

8장, 깃의 원리에서는 깃의 내부 동작 방식을 심도 있게 살펴보고, 그것들을 간단한 단어로 이해한다. 1~7장에서 실행했던 여러 가지 깃 명령이 실행될 때 어떻게 동작하는지 기초적인 수행 과정도 설명한다.

★ 지은이의 말 ★

이 책은 깃을 사용해본 경험이 없는 사용자가 깃 버전 관리 시스템(Git Version Control System)을 사용해 모든 형태의 전자 데이터를 효과적으로 처리하고 생산성을 향상시킬 수 있도록 안내한다.
설치 과정을 안내하는 단계별 예제와 실행 화면을 통해 데이터 버전 관리 최적의 도구인 깃의 개념을 이해할 수 있도록 구성했다.
각 장은 단순하고 일상적인 사례와 비유를 들어 개념을 설명하며, 이를 통해 유용한 학습 경험을 얻을 수 있다.
특히 윈도우와 리눅스, 맥 OS 등 다양한 환경을 고려해 모든 상황을 GUI와 CLI(Command-Line Interface)로 설명한다.
마지막 8장에서는 독자들이 1~7장에서 수행했던 깃의 기능을 실행할 때 생기는 변화들을 손쉽게 이해할 수 있게 구성했다. 이 책을 읽기 전에 깃을 사용해본 독자들도 흥미로워할 것이다.
책을 다 읽을 즈음이면 이론적인 지식은 물론이고 디지털 파일을 다루는 방식을 변화시킬 때 필요한 개념에 대한 이해와 경험을 얻게 될 것이라 확신한다.

★ 옮긴이의 말 ★

“깃(Git)은 어렵다?”
개발자가 작성한 소스 코드를 위한 버전 관리 시스템(VCS, Version Control System)을 선정할 때 깃을 추천하면 종종 듣는 이야기다. 아직까지 우리에게 깃은 낯선 존재다. 우리나라에서는 깃보다 SVN을 더욱 친숙하게 생각하는 개발자들이 많다. 일반적으로 깃은 터미널 창을 열어 명령을 입력하며 제어해야 하기 때문에 많은 개발자들이 이질감을 느낀다. 그러나 깃의 강력한 기능을 쉽게 사용할 수 있는 GUI 클라이언트가 있다. 아틀라시안(Atlassian)에서 만든 소스 트리(Source Tree)를 비롯해 이미 많은 통합개발환경(IDE)(이클립스, 인텔리제이 등)에서 깃의 기능을 지원한다.

깃을 처음 사용하는 것은 쉽지 않지만, 배우는 것은 분명 어렵지 않다. 상황에 따라 차분하게 명령을 입력하고 그 결과를 확인하는 과정을 진행하고 나면 그리 어렵지 않다는 사실을 알게 될 것이다. 깃을 처음 접하는 사람들에게 “애드(add)하고 커밋(commit)하고 끌어오고(pull) 충돌(conflict)한 후 병합(merge)하고 나서 밀어 넣으면(push) 된다.”라고 설명하면, 처음에는 외계어처럼 들릴 것이다. 하지만 저 한 문장에서 설명하는 기능만 이해하고 나면 ‘깃을 쓸 줄 안다.’고 이야기할 수 있게 된다.

깃을 추천하는 가장 큰 이유는 분기(branching)와 병합(merging)이 다른 버전 관리 시스템에 비해 훨씬 쉽기 때문이다. 깃을 이용하면 개발 할 때 기능을 최소 단위로 쪼개고 그 단위 기능 별로 분기를 생성하고 단위 기능을 병합하는 과정이 매우 쉽다. 이 강력한 기능에 빠져들고 나면 다른 버전 관리 시스템을 사용하기가 어려워질 정도다.

기술을 배울 때에는 차근차근 따라 하는 것이 중요하다. 기술의 개념을 이해하는 과정은 지루한 경우가 많다. 반면 화면을 보면서 명령을 입력하고, 그 결과를 바로바로 확인하면 재미 있을 뿐 아니라 효과적이다. 머리로 생각하는 것이 아니라 손이 기억하도록 하는 것이 가장 친숙한 지식 습득 과정이기 때문이다.

이 책은 깃에 익숙한 사람에게는 시시한 내용일 수 있지만, 깃을 처음 접하는 사람이 다양한 사용 환경에서 깃을 이용하면서 참고하기에는 좋다. 다양한 운영체제를 사용하는 사람들을 대상으로 단계 별로 깃의 기능을 설명하고 따라 해보고 왜 그렇게 동작하는지 집고 넘어가게 구성돼 있다.

“깃은 생각하는 것만큼 어렵지 않다!”
부담감은 버리고 차분하게 시작하자. ‘천 리 길도 한걸음부터’니까. 개발자에게 ‘깃’이라는 강력한 무기를 획득할 수 있는 좋은 기회다.
바로 Go Go!
김 지 헌
[교보문고에서 제공한 정보입니다.]

목차정보

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 전송

__정리
[알라딘에서 제공한 정보입니다.]