파이썬 코드로 배우는 Git&Github

파이썬 코드로 배우는 Git&Github

$23.77
Description
예전과 지금의 개발 환경에서 가장 큰 차이점을 하나만 꼽으라고 하면, Git의 사용이라고 할 수 있습니다. 과거의 SVN 같은 도구에 비해, 코드 관리를 좀 더 확실하고 편하게 해 줍니다. 특히 대규모 개발에는 사실상 빼 놓을 수 없는 존재가 되었습니다. 이렇듯 Git은 참 좋은 도구지만 사실 치명적인 단점이 하나 있습니다. 처음 접하는 분에게는 사용법이 너무 어렵다는 점입니다. 그런데 혼자 배우기에는 너무 어려워 도움이 될까 하는 마음에 도서를 구입하면 오히려 책은 너무 간단하여 실제 사용에 참고가 그다지 되지 않습니다. 특히 업무 환경과는 너무 동떨어져 책으로는 가볍게 연습 한 번 정도만 가능한 것 같습니다. 이해하기 힘든 Git의 내부 원리를 설명하면서도 실제 상황에 맞게 Git의 기능을 사용하는 법을 알려주는 도서가 있으면 좋을 것 같은데, 어디 한 권 없을까요?

이런 부분을 보완하여 실제 업무에 도움이 될 Git 도서를 만들었습니다. Git의 동작 원리를 챕터를 할애하여 자세히 설명하고, 파이썬으로 작성된 소스코드와 함께 기능을 배웁니다. 각 기능은 업무상에 벌어지는 일을 전제로 설명하고, 사용 중 충돌이 일어날 경우 해결 방법도 꼼꼼히 설명했습니다. 또한 이해를 돕기 위해 명령어를 사용할 때마다 현재 상황을 묘사하는 그림을 첨부하였습니다.

초반에는 실습 환경을 구축하고, 소스트리로 간단하게 Git을 체험합니다. 그 뒤 Git의 개념을 확실히 잡도록 Git의 동작 원리에 관해 꼼꼼히 설명합니다. 4장부터는 파이썬 프로그램을 개발하는 ‘개발자 A’의 개발 일지를 따라가며 그에 맞는 Git 명령어를 차근차근 익힌 뒤 Github와 관련된 기능으로 다른 개발자와 협업하는 방법을 배우고 발생하는 문제들을 해결합니다. 마지막으로는 Git의 제일 중요한 기능인 브랜치를 생성, 병합, 재배치하는 등의 사용법과 구체적인 운영 전략을 소개합니다.
저자

유광명

한국과학기술원(KAIST)전기및전자공학석사(2008),한국전력데이터사이언스연구소차장(2010~2020),삼성전기설비기술연구소수석연구원(2021~2022)
카이스트전기및전자공학과에서석사학위를마쳤다.졸업후한국전력에서데이터분석가로,삼성전기설비개발연구소에서수석연구원으로근무하였다.실패보다아무것도시도하지않은것을후회할까봐두려워뒤늦게스타트업시장에뛰어들었다.현재라이프로그와머신러닝을접목한헬스케어서비스개발업무를담당하고있다.

목차

1장실습환경구축하기
1Git/소스트리설치하기
1.1Gitforwindows
1.2소스트리
2계산기프로그램개발환경구축하기
2.1파이썬과pip
2.2PyQt5
2.3VSCode
3Github가입하기
3.1Github계정생성

2장소스트리로Git체험하기
1저장소생성하기
1.1원격저장소생성하기
1.2로컬저장소생성하기
2로컬저장소에서이력관리하기
2.1파일수정내용기록하기
2.2새로운파일추가하고기록하기
3로컬저장소와원격저장소의내용일치시키기
3.1로컬저장소의내용을원격저장소로업로드:Push
3.2원격저장소의내용을로컬저장소로다운로드:Pull
4정리

3장Git의동작개념
1.Git의3가지작업영역
2.Git이관리하는3가지파일상태
3.정리

4장Git기본명령어
1저장소생성하기
1.1빈저장소생성하기
1.2사용자정보설정하기
1.3정리
2add와commit:개발이력기록하기
2.1프로그램작성하기
2.2첫번째이력저장하기
2.3두번째이력저장하기
2.4세번째이력저장하기
2.5정리
3status,log,그리고show:저장소상태와커밋내역확인하기
3.1gitstatus
3.2gitlog
3.3gitshow
3.4정리
4diff:파일의수정내용비교하기
4.1프로그램수정하기
4.2gitdiff로파일의수정된내용확인하기
4.3gitdiff로커밋간의내용비교하기
4.4정리
5reset①:스테이징되돌리기
5.1파일추가하고스테이징하기
5.2gitreset으로파일언스테이징하기
5.3정리
6amend:최근에작성한커밋수정하기
6.1현재상태커밋하기
6.2gitcommit-amend로최근커밋수정하기
6.3정리
7checkout:커밋되돌리기
7.1현재저장소의상태확인하기
7.2gitcheckout으로커밋되돌리기
7.3최신커밋으로돌아가기
7.4정리
8reset②:커밋취소하기
8.1현재저장소의상태확인하기
8.2gitreset으로커밋취소하기
8.3리셋으로커밋이삭제된것일까?
8.4--soft옵션으로gitreset하기
8.5정리
9reflog:HEAD의참조이력확인하기
9.1gitreflog로참조이력확인하기
9.2정리
10HEAD와master
10.1브랜치
10.2HEAD와브랜치의관계
10.3checkout,reset명령에따른HEAD의이동
10.4정리

5장Github와함께사용하기
1원격저장소생성과연동
1.1원격저장소생성하기
1.2원격저장소등록하기
1.3업스트림설정하기
1.4정리
2push와pull①:저장소로업로드,저장소에서다운로드하기
2.1로컬저장소의파일수정하기
2.2수정내용커밋하기
2.3gitpush로로컬저장소의내용업로드하기
2.4원격저장소의파일수정하기
2.5gitpull로원격저장소의내용가져오기
2.6정리
3tag:부가정보추가하기
3.1저장소확인하기
3.2Lightweight태그작성하기
3.3Annotated태그작성하기
3.4태그확인하기
3.5태그로체크아웃하기
3.6태그삭제하기
3.7원격저장소에태그푸시하기
3.8정리
4revert:푸시한커밋되돌리기
4.1로컬저장소의파일수정하기
4.2수정한내용커밋,푸시하기
4.3gitrevert로커밋되돌리기
4.4되돌린내용을푸시하기
4.5정리

6장Github로협업하기
1clone:원격저장소복제하기
1.1기존로컬저장소이름수정하기
1.2gitclone으로원격저장소내용복제하기
1.3calculator_B저장소사용자설정하기
1.4정리
2push와pull②:협업환경에서작업내용업데이트하기
2.1개발자A:ui.py수정,커밋,푸시하기
2.2개발자B:ctrl.py수정,커밋,푸시하기
2.3개발자A:원격저장소의내용을가져와서병합하기
2.4정리
3충돌해결하기
3.1개발자B:ui.py수정,커밋,푸시하기
3.2개발자A:ui.py수정,커밋,푸시하기
3.3개발자A:gitpull그리고충돌해결하기
3.4개발자B:gitpull로원격저장소의내용병합하기
3.5정리
4fetch와merge
4.1개발자B:ctrl.py수정,커밋푸시하기
4.2개발자A:gitfetch로원격저장소의정보가져오기
4.3개발자A:gitmerge로원격저장소의내용병합하기
4.4개발자A:ctrl.py파일의sum함수수정후커밋,푸시하기
4.5개발자B:원격저장소의내용풀하기
4.6정리
5blame:코드의수정내역확인하기
5.1gitblame으로소스코드수정내역확인하기
5.2정리
6stash:작업내용임시저장하기
6.1개발자A:ui.py수정,커밋,푸시하기
6.2개발자B:ctrl.py수정하기
6.3개발자B:gitstash로작업내용임시저장하기
6.4gitstash살펴보기
6.5개발자B:원격저장소의내용가져와서확인하기
6.6개발자B:임시저장한내용가져오기
6.7개발자B:작업을마무리하고커밋,푸시하기
6.8개발자B:저장내용삭제하기
6.9개발자A:원격저장소의내용을저장하기
6.10정리

7장브랜치
1gitbranch와checkout:브랜치생성과전환
1.1gitbranch로브랜치생성,삭제하기
1.2gitcheckout으로브랜치전환하기
1.3새브랜치에서작업하기
1.4정리
2merge:브랜치병합하기
2.1작업브랜치를master로전환하기
2.2master브랜치에dev1브랜치의작업내용병합하기
2.3정리
3merge의두종류:fast-forward와3-waymerge
3.1fast-forwardmerge
3.23-waymerge
3.3정리
4merge옵션:--ff,--no-ff,--squash
4.1fast-forwardmerge
4.2nonfast-forwardmerge
4.3squashmerge
4.4브랜치정리하기
4.5정리
5rebase:브랜치재배치하기
5.1issue1브랜치작업하기
5.2issue2브랜치작업하기
5.3gitrebase로브랜치재배치하기
5.4master브랜치에서병합하기
5.5정리
6cherry-pick:다른브랜치의커밋적용하기
6.1dev1브랜치작업하기
6.2dev2브랜치작업하기
6.3dev2브랜치작업:gitcherry-pick으로특정커밋의내용가져오기
6.4master브랜치에서dev2의내용병합하기
6.5사용하지않는브랜치삭제하기
6.6정리
7신규브랜치푸시하기
7.1master브랜치의내용푸시하기
7.2light브랜치작업하기
7.3light브랜치의작업내용푸시하기
7.4정리
8장브랜치운영전략
1pullrequest
1.1관리자용원격저장소생성하기
1.2개발자A:PC에원격저장소의내용복제하기
1.3개발자A:feat1브랜치에서ui.py수정,커밋,푸시하기
1.4개발자A:Github에서풀리퀘스트생성하기
1.5관리자:Github에서풀리퀘스트승인하기
1.6개발자A:원격저장소에병합된내용가져오기
2Gitflow
2.1Gitflow의브랜치들
2.2git-flowcheatsheet
2.3정리

appendix
1Gitcheatsheet
2커밋메시지컨벤션
3gitignore

출판사 서평

1장실습환경구축하기
Git을배우기전에필요한프로그램을설치하여환경울구축하는장입니다.GitforWindows,소스트리와같은Git프로그램을설치하고Github계정을만듭니다.파이썬프로그램에필요한환경도함께준비합니다.

2장소스트리로Git체험하기
대표적인GUI프로그램인소스트리(Sourcetree)를이용하여Git의기본적인기능을배워봅니다.저장소생성,간단한커밋,저장소간내용동기화등맨처음알아두면좋을기본적인내용을실었습니다.

3장Git의동작원리
Git저장소의구성과동작개념을설명합니다.Git은분산처리구조로만들어져유연하면서도성능이우수한형상관리프로그램이지만,기존중앙집중식형상관리도구에비해직관적이지못하여처음배우는사람들이동작원리를이해하는데어려움을겪곤합니다.3장에서Git의독특한작업영역과파일및이력관리방식을확실하게이해할수있도록동작원리를꼼꼼히설명하였습니다..

4장Git기본명령어
소규모의프로젝트를준비하듯로컬PC에Git저장소를생성해서Git명령어중에서도자주사용되고필수적으로알아야하는명령어들을배우는장입니다.4장부터는CLI환경에서명령어를사용하는방법도소개합니다.

5장Github와함께사용하기
로컬저장소와Github를연계하여사용하는방법을소개합니다.Github계정으로원격저장소를생성하고지금까지로컬PC에서작업했던저장소와연계한뒤작업내용을Github에업로드하는방법,원격저장소의내용을로컬저장소로다운로드하는방법을실습합니다.이과정에서유용하게사용할수있는Git명령어도함께소개합니다.

6장Github로협업하기
실무를할때와비슷한환경을만들어다수의개발자가원격저장소를중심으로협업하는방법을배웁니다.그리고협업하면서발생하는상황에서요긴하게사용될수있는명령어와팁들을소개합니다.

7장브랜치
브랜치의생성,관리,조작방법을배워소스코드관리능력을한단계끌어올릴수있도록구성한장입니다.브랜치의특성을이용하여한저장소안에서각각브랜치를만들어동시에서로다른작업을하고,두브랜치의내용을병합하여정리하는방법을배웁니다.

8장브랜치운영전략
불완전한코드의병합을방지하여브랜치품질을유지하기위한풀리퀘스트(pullrequest),그리고한저장소안에서다양한용도의브랜치를효과적으로운영할수있는방법인깃플로우(gitflow)등의실무에서자주사용되는브랜치운영전략을알아보는장입니다.