실무에 필요한 핵심 명령어를 쏙쏙 담아낸 <팀 개발을 위한 Git, GitHub 시작하기> 개정판!
깃&깃허브 베스트셀러 <팀 개발을 위한 Git, GitHub 시작하기>가 실무에 적절한 명령어와 용어, 협업에 100% 활용할 수 있는 내용이 추가된 개정판으로 돌아왔습니다. 이 책은 시나리오를 곁들인 실습으로 구성되어 깃&깃허브를 처음 시작하는 분도 쉽게 시작할 수 있습니다. 또한 기초 명령어부터 개발자스러움을 느낄 수 있는 응용 명령어까지, 깃&깃허브 입문자뿐만 아니라 더 깊이 있게 사용하고 싶은 개발자, 디자이너, 기획자 모두에게 유용한 내용을 담았습니다.
CHAPTER 0에서는 1시간이면 깃&깃허브의 기본 사용법을 따라 할 수 있을 정도로 핵심만 콕콕 짚어 학습하고, [PART 1]에서는 손쉬운 그래픽 툴 소스트리를 통해 깃과 깃허브의 전 과정을 따라 해 봅니다. [PART 2]와 무료 특별판은 심화 과정으로 CLI 환경에서 실습을 진행할 수 있도록 구성하여 깃& 깃허브를 반복 학습하며 익힐 수 있습니다.
저자소개
저자
정호영
LG전자, NHN NEXT, Naver Labs, Amazon Web Services 등을 거쳐 현재는 소프트웨어 교육 기업 (주)코드스쿼드에서 교육과 개발을 하고 있다. 취미는 레트로 게임과 주짓수이고, 딸바보 아빠이다. 최근에는 딸과 함께 <젤다의 전설>을 즐기고 있다.
저자
진유림
UX를 사랑하는 프론트엔드 개발자. 레진엔터테인먼트, 스마트스터디를 거쳐 현재 토스에서 부지런히 웹 서비스를 만들고 있다. 개발자 커뮤니티와 지식 공유를 좋아하며 IBM, 삼성전자, 페이스북, 구글 개발자 커뮤니티 및 대학교에서 기술 강의를 했다. 깃&깃허브 강의는 온라인, 오프라인 모두 여러 번 진행한 경험이 있으며 은퇴 후 바닷가에서 개발자 대상의 서핑 카페를 여는 게 꿈이다.
목차
CHAPTER 0 빠른 실습으로 Git, GitHub 감 익히기
__01. Git 그리고 GitHub
__02. Git 설치하고 로컬 저장소에서 커밋 관리하기
__03. GitHub 원격 저장소에 커밋 올리기
__04. GitHub 원격 저장소의 커밋을 로컬 저장소에 내려받기
[기본편] PART 1 GUI 환경에서 버전 관리 시작하기
CHAPTER 1 GUI를 위한 버전 관리 환경 구축하기
__01. 소스트리 설치하기
__02. 비주얼 스튜디오 코드 설치하기
__03. GitHub 둘러보기
CHAPTER 2 혼자서 Git으로 버전 관리하기
__01. 로컬 저장소를 소스트리에 불러오기
__02. 소스트리로 커밋 만들고 푸시하기
__03. 그림으로 Git 뜯어보기
CHAPTER 3 여러 명이 함께 Git으로 협업하기
__01. 원격 저장소에서 협업하기
__02. 브랜치 만들고, 이동하기
__03. 병합: 브랜치와 브랜치 합치기
__04. 충돌: 앗! 둘이 똑같은 코드를 고쳤어요
__05. 풀 리퀘스트: 브랜치를 합치는 예의 바른 방법
__06. 릴리즈: 개발이 완료되었습니다. 출시하자!
CHAPTER 4 둘 이상의 원격 저장소로 협업하기
__01. 포크: 원격 저장소를 복사해서 새로운 원격 저장소 만들기
__02. 원본 저장소에 풀 리퀘스트 보내고 병합하기
__03. 리베이스: 묵은 커밋을 새 커밋으로 이력 조작하기
CHAPTER 5 실무 사례와 함께 Git 다루기
__01. 실습을 위한 사전 준비
__02. 어멘드: 수정 못한 파일이 있어요, 방금 만든 커밋에 추가하고 싶어요
__03. 체리 픽: 저 커밋 하나만 떼서 지금 브랜치에 붙이고 싶어요
__04. 리셋: 옛날 커밋으로 브랜치를 되돌리고 싶어요
__05. 리버트: 이 커밋의 변경 사항을 되돌리고 싶어요
__06. 스태시: 변경 사항을 잠시 다른 곳에 저장하고 싶어요, 커밋은 안 만들래요
CHAPTER 6 GitHub 100% 활용하기
__01. GitHub 프로필 꾸미기
__02. 더 좋은 풀 리퀘스트 만들기
__03. GitHub에서 풀 리퀘스트 되돌리기
__04. 브랜치 보호하기
[심화편] PART 2 CLI 환경에서 버전 관리 시작하기
CHAPTER 7 CLI 환경에서 Git 명령어 살펴보기
__01. 왜 CLI를 사용할까?
__02. Git Bash 시작하기
__03. 기본 Git 명령어 살펴보기
__04. 원격 저장소 관련 Git 명령어 살펴보기
CHAPTER 8 CLI 환경에서 브랜치 생성 및 조작하기
__01. 브랜치 생성하기
__02. 브랜치 기본 조작하기
__03. 3-way 병합하기
__04. 리베이스하기
CHAPTER 9 Git 내부 동작 원리
__01. git add 명령의 동작 원리
__02. git commit 명령의 동작 원리
__03. 커밋 객체 살펴보기
__04. 브랜치 작업 동작 원리
CHAPTER 10 인증 기능 살펴보기
__01. 인증 관련 기능 사용하기
__02. SSH 키 생성 및 사용하기
__Appendix A Git Cheat Sheet
__Appendix B Markdown Cheat Sheet
__찾아보기
출판사리뷰
하나, 초보자도 이해하고 따라하기 쉬운 시나리오로 학습하자
코딩이 어색해도, 깃&깃허브가 처음이어도 괜찮습니다. 앞으로 여러분의 협업자는 고양이, 문어, 너구리가 될 테니까요. 이 책에서는 실무 협업 과정에서 일어날 법한 상황을 스토리로 풀어내, 초보자여도 깃&깃허브를 바로 적용할 수 있도록 쉽게 설명합니다. 우리의 유능한 협업자 고양이를 따라 프로그램을 설치하고, 기초 명령어부터 차근차근 실습을 따라 해 보세요. 어느새 깃&깃허브를 능숙하게 다룰 수 있을 것입니다.
둘, 친숙한 그래픽 툴에서 이해하고, CLI에서 익히자
[PART 1]에서는 깃을 다룰 수 있는 그래픽 툴인 ‘소스트리’에서 명령어를 직관적으로 배웁니다. 그래픽 툴에서는 소스 코드가 필요 없습니다. 검은색 명령 창인 ‘CLI’가 두려운 초보자도 소스트리에서는 버튼만으로 명령어를 실행할 수 있습니다. 또한 그래프로 깃의 흐름을 시각적으로 확인할 수 있으므로 명령어 기능을 쉽게 이해하고 따라 실습할 수 있습니다. 명령어를 이해했다면 [PART 2]에서는 CLI에 도전합니다. 소스트리에서 수행한 내용을 CLI 기반 ‘Git Bash’에 소스 코드로 직접 입력하고 결과를 출력하는 반복 학습을 통해 깃&깃허브를 익힐 수 있습니다.
셋, 동작 원리를 소스 코드로 직접 파헤쳐 보자
빠르게 필요한 명령어 기능을 익히는 것도 좋지만, 동작 원리를 알아야 문제 상황도 능숙하게 해결하는 진정한 깃&깃허브 사용자가 될 수 있습니다. CLI에서 명령어를 입력하고, 소스 코드의 버전을 관리하는 방법이 익숙해졌다면 동작 원리를 알 수 있는 [PART 2]를 놓치지 마세요. 앞서 배운 기초 명령어의 기능을 직접 소스 코드로 구현해 보며 깃의 동작 원리를 이해할 수 있습니다.
넷, 중급 사용자를 위한 무료 특별판을 제공!
실무에서 깃&깃허브를 더욱 능숙하게 다루고 싶나요? 무료 특별판에서는 본 책에서 다루지 못한 중급 Git 명령어를 배울 수 있습니다. 본 책에서 입문자에게 유용한 기본 명령어와 동작 원리를 배운 후, 더욱 깊이 있는 깃&깃허브를 익히고 싶을 때 무료 특별판을 읽어 보세요. 알아 두면 유용한 중급 명령어가 수록되어 본 책부터 무료 특별판까지 읽고 나면 나도 깃&깃허브 정복!
시중에는 GitHub를 설명하는 수 많은 책들이 있는데, 우연한 기회에 궁금해서 도서관에서 대여해서 봤습니다. 물론 이 책에서 설명하고 있는 SW의 버전에 따른 약간 차이가 있기는 하지만, 학습 및 실습할 때에는 전혀 지장이 없습니다. 간혹, 다른 IT 책들은 실습하면서 확인되는 오류와 오타들이 있어서 곤란할 때가 많이 있는데, 이 책은 최신 개정판에 보고된 하나의 사례 말고는 아직은 없는 것 같습니다. 그리고, GitHub 시작하기 책의 뒤에서 안내하고 있는 한글판 ProGit을 내려받았는데, 그 내용이 방대하고 학습해야 하는 부분들이 너무 많아서 좀 버겁기는 합니다. 그럼에도 불구하고 이 책부터 하나씩 시작하면 SW 산업 분야에서 유용하게 쓸 수 있는 것이라고 말할 수 있겠습니다.
'팀개발을 위한 Git, GitHub 시작하기'는 개발자를 위한 Git의 기초 개념과 사용법을 다루는 책입니다. 이 책은 2020년에 초판이 출간된 이후, 2023년에 개정판으로 업데이트되었습니다. 개정판에서는 소스 코드 버전 관리를 위한 Git과 원격 관리를 위한 GitHub에 대한 내용을 다룹니다. 이 책은 협업을 원하는데 아직 Git을 도입하지 않은 개발자나 Github을 처음 접하는 개발자들에게 추천됩니다. 또한, Git의 기본 개념과 사용법을 손쉽게 이해하고 활용하고자 하는 초보자와 중급자들에게 매우 유용한 입문서입니다. 하지만 고급 주제에 대한 깊은 이해를 원하는 경우에는 별도의 심화된 Git 도서나 추가 자료를 참고하는 것이 좋습니다. 이 책은 기본적인 Git 기능을 쉽게 습득하고 실제 협업에 적용할 수 있는 내용을 다루고 있어, 초보자와 중급자들에게 큰 도움이 될 것입니다.
Git은 분산 버전 관리 시스템으로, 코드와 프로젝트의 변경 이력을 관리할 수 있습니다. 개발자는 변경된 내용을 추적하고, 이전 버전과의 차이점을 비교하며, 필요한 경우 이전 상태로 롤백할 수 있습니다. 이를 통해 개발자는 코드 변경에 대한 투명성과 안정성을 확보할 수 있습니다.
Git과 GitHub는 현대 소프트웨어 개발의 필수 도구로 자리 잡았습니다. 개발자가 이를 잘 이해하고 활용한다면, 효율적인 개발과 협업을 위한 기반을 구축할 수 있고, 개발 생산성을 향상시킬 수 있습니다.
이 도서는 일단 컬러풀한 디자인으로 인해 눈에 시원하게 원고가 들어오는 장점이 있습니다. 비단 목차뿐만 아니라 모든 페이지가 올컬러 - 컬러풀한 이미지와 일러스트가 독자의 이해를 돕고있습니다.
앞 장은 Git/GitHub에 대한 초보의 이해를 매우 쉽게 돕고 있습니다. 요약하면 Git은 여러 개발자가 동시에 작업하는 경우 협업을 원활하게 지원합니다. 여러 개발자가 동일한 프로젝트에서 작업할 때, 각자의 작업을 분리된 브랜치로 관리하고, 변경사항을 통합하며, 충돌을 해결할 수 있습니다. 이를 통해 여러 개발자 간의 작업 충돌을 방지하고 효율적인 협업을 가능하게 합니다.
GitHub는 Git을 기반으로한 웹 기반 호스팅 플랫폼으로, 수많은 오픈 소스 프로젝트가 호스팅되고 협업되는 공간입니다. GitHub을 통해 다른 개발자와 소스 코드를 공유하고, 기여하며, 협업할 수 있습니다. 오픈 소스 프로젝트에 기여하거나 다양한 프로젝트에서 영감을 얻을 수 있습니다.
GitHub에서의 "커밋(commit)"은 코드 변경 사항을 저장하고 기록하는 작업을 의미합니다. 커밋은 Git의 개념으로, 코드 변경을 저장소에 영구적으로 기록하는 작업입니다. 첫 장에서는 CLI 기본 명령과 함께 이를 알려주고 있습니다.
GitHub과 소스트리(SourceTree)는 서로 다른 도구이지만, GitHub를 사용하는 개발자들이 소스트리를 사용하여 Git을 보다 편리하게 관리할 수 있습니다. 이 도서에서 소스 트리까지 다루어준것은 도서 자체가 초보의 관점에서 작성되었음을 알 수 있습니다.
소스트리(SourceTree)는 Atlassian에서 개발한 Git 및 Mercurial을 관리하기 위한 무료 Git 클라이언트 도구입니다. 소스트리는 GUI 기반의 인터페이스를 제공하여 개발자가 Git을 사용하면서 그래픽으로 작업을 수행할 수 있도록 도와줍니다. 소스트리는 브랜치 생성과 관리, 커밋 작업, 코드 변경 내역 비교, 충돌 해결 등을 직관적이고 편리하게 수행할 수 있도록 지원합니다. 소스트리를 사용하면 복잡한 Git 명령어를 기억하지 않아도 되고, 시각적으로 코드 변경 내역을 확인하고 관리할 수 있습니다.
비주얼 스튜디오 코드(Visual Studio Code)는 개발자들 사이에서 널리 사용되는 도구이며 Git과 함께 사용되면 개발 작업을 향상시킬 수 있는 강력한 조합입니다. 비주얼 스튜디오 코드는 다양한 프로그래밍 언어와 플랫폼을 지원하며, 풍부한 확장성을 가지고 있어 개발자들이 자신의 개발 환경을 맞춤 설정할 수 있습니다. 코드 작성, 디버깅, Git 통합 등 다양한 개발 작업을 지원하여 생산성을 향상시킵니다.
GitHub과 비주얼 스튜디오 코드는 서로 연동하여 사용될 수 있습니다. 예를 들어, 비주얼 스튜디오 코드의 Git 통합 기능을 사용하여 GitHub에서 호스팅되는 원격 저장소에 코드를 커밋하고 푸시할 수 있습니다. 또한, GitHub에서 제공하는 GitHub 확장 프로그램을 설치하여 비주얼 스튜디오 코드에서 GitHub 관련 기능을 더욱 편리하게 사용할 수 있습니다. 이를 통해 개발자는 비주얼 스튜디오 코드에서 코드 편집과 Git 작업을 하나의 통합 환경에서 수행할 수 있습니다.
이 도서에선 두 개의 도구를 함께 사용하여 코드 작성, 버전 관리, 협업 등의 작업을 효율적으로 수행하는 방법을 알려주고 있습니다.
.md 확장자는 Markdown(MD) 파일을 나타냅니다. Markdown은 일반 텍스트 기반의 마크업 언어로, 가독성이 좋고 쉽게 작성할 수 있는 간단한 문법을 가지고 있습니다. Markdown은 HTML로 변환이 가능하며, 웹 기반의 문서 작성이나 문서화에 널리 사용됩니다. GitHub에서는 Markdown 문법을 지원하고, README 파일, 문서, 블로그 글, 이슈 설명 등 다양한 곳에서 사용할 수 있습니다.
GitHub에서 "풀 리퀘스트(Pull Request)"는 코드 변경을 제안하고, 다른 개발자들의 검토와 피드백을 받는 기능입니다. 이 책에서는 많은 개발자와 협업 시 풀 리퀘스트에 대한 묵언적인 협업 방법을 알려줍니다. 팀의 깃헙 공동 작업이 아주 중요한 내용을 저도 이 챕터를 통해 배웠습니다.
개발자로서 Git을 사용하는 경우, Git의 CLI(Command Line Interface) 명령을 알고 사용하는 것이 좋습니다. CLI를 사용하면 Git의 다양한 기능을 효율적으로 활용하고, 더 세밀한 제어를 할 수 있습니다.
이 책은 실무에 적절한 명령어와 용어, 협업에 100% 활용할 수 있는 내용이 추가된 개정판으로 돌아왔습니다. 시나리오와 함께 실무적인 내용을 바탕으로 여러 실습으로 구성되어 처음 배우는 분도 쉽게 시작할 수 있습니다. 기초 명령어부터 개발자스러움을 느낄 수 있는 응용 명령어까지, 깃&깃허브 입문자뿐만 아니라 더 깊이 있게 사용하고 싶은 개발자, 디자이너, 기획자 모두에게 유용한 내용을 담았습니다.
팀 단위 개발에 필요한 Git, Github의 개념과 실제 사용법을 다루고 있는 책이다. 찾아보니 저자 분들의 기존 Git 강의를 좀 더 발전 시켜서 책으로 까지 출판한 거 같다. 그래서 아래 링크를 참고하면 책이 대략적으로 어떤 느낌으로 서술돼 있는지 확인할 수 있다..!
책은 ‘무조건 쉽게. 단, 제대로’라는 집필 목표에 충실하게 구성돼 있다. Git과 Github를 먼저 GUI 환경에서 익히고, 이후 CLI 환경에서 레벨업할 수 있는 다양한 실습과 예시들이 가득하다.
특히 좋았던 점은 Merge, Branch 관리 등의 협업 과정에서 흔히 발생하는 오류들을 쉽게 이해할 수 있는 형태로 표현했다는 것이다. 실제 GUI 및 CLI 환경의 상태창과 Git Tree의 형태를 단순화한 그림을 함께 표기했기 때문에, 문제 상황을 직관적으로 파악할 수 있어 좋았다.
Git을 입문하는 사람과 Git을 대략적으로 복습하고 싶은 사람 모두에게 추천하고 싶은 책이다.
개발자를 준비하며 정말 많이 듣는 말 중 하나가 "잔디를 많이 심어라."였다. 개발에서의 협업. 그리고 성실도의 지표를 보여줄 수 있는 유일무이한 플랫폼이 바로 깃허브라고 할 수 있다. 그만큼 개발자와는 개발과 뗄레야 뗄 수 없는 존재인 Git과 GitHub에 대한 책의 개정판이 한빛미디어에서 출간되었다. 개발자를 준비하는 나에게 정말 반가운 일이 아닐 수 없었다. 오늘은 7일이면 완성할 수 있는 "팀개발을 위한 Git, Github 시작하기"를 직접 읽고 리뷰해보려고 한다.
책의 제목은 "팀개발을 위한 Git, Github 시작하기"이다.
우선 개발과 Git이 무슨 상관이 있을까? Git은 소스 코드 버전 관리 시스템이라고 할 수 있다. 개발을 하며 코드들이 계속해서 디벨롭이 되고, 새로운 버전으로 업그레이드가 되는데 그러한 과정에서 굉장히 편하게 버전을 관리할 수 있는 시스템인 것이다.
GitHub란, Git으로 관리하는 프로젝트를 올려둘 수 있는 사이트이다. 블로그처럼, 개발자들이 본인의 프로젝트를 올리고 그것에 대한 코드, 설명들을 공유하거나 다른 개발자들과 프로젝트를 하며 협업할 때 필수로 사용되고 있는 플랫폼인 것이다.
GitHub의 경우에는 사용자가 1억명이 넘는 거대한 플랫폼일 뿐만 아니라 공개 저장소인 경우 모두 무료라는 점이 큰 장점이다.
사실 Git은 선택이 아닌 필수이다.
개발자 구인 공고를 보면 "Git을 활용한 협업"이 익숙한 개발자를 찾고 있는 글을 정말 많이 접하게 된다. 어느 회사를 가든, 어떤 프로젝트를 하든, GitHub를 거치지 않고서는 협업이 진행되지 않기 때문에 개발자 혹은 PM을 꿈꾸는 모든 사람들은 반드시 읽어야 할 필수 도서라고 생각한다.
이 책의 핵심 목차는 다음과 같다.
Chapter 0. 빠른 실습으로 Git, GitHub 감 익히기
Chapter 1. GUI를 위한 버전 관리 환경 구축
Chapter 2. 혼자서 Git 버전 관리하기
Chapter 3. 여러 명이 함께 Git으로 협업하기
Chapter 4. 둘 이상의 원격저장소로 협업하기
Chapter 5. 실무 사례와 함께 Git 다루기
Chapter 6. GitHub 100% 활용하기
Chapter 7. CLI 환경에서 Git 명령어 살펴보기
Chapter 8. CLI 환경에서 브랜치 생성 및 조작하기
Chapter 9. Git 내부 동작 원리
Chapter 10. 인증 기능 살펴보기
Git과 GitHub가 무엇인지 모르는 독자부터, 실제 개발에서 Git을 활용하는 사람들까지 넓은 범위에서 Git과 GitHub를 다루고 있다. 기본 개념에 대한 자세한 설명은 물론이고, 간단한 커밋 및 푸시, 병합까지의 과정, 고급 명령어까지 각각의 수준과 단계별로 책이 구성되어 있다는 것이 정말 좋았던 점이다. 처음 Git을 접한다면 해당 내용이 어려울 법도 하지만, 정확한 가이드를 토대로 쉽고 명확한 설명과 상세한 그림이 첨부가 되어있어 그 누구든 쉽게 이해하고 따라할 수 있는 책이라고 생각한다.
개인적으로 처음 Git을 사용해서 프로젝트를 커밋했을 때, Git과 명령어들에 익숙해지지 않아서 충돌이 자주 일어났던 경험이 있다. 모든 것이 미숙한 채로 프로젝트를 진행하다보니 Git을 활용한 협업 과정에서 어려움이 있었는데 깃과 깃허브에 대해서 미리 익히고 기본기를 다진 후에 프로젝트를 임했다면 협업 과정이 훨씬 더 원활하게 진행되었으리라고 확신한다.
이번에는 개발자라면 누구나 알고 있을 '깃(Git)'과 '깃허브(GitHub)'를 쉽게 시작하도록 안내하는 책을 읽고 서평을 남기게 되었습니다.
'깃(Git)'은 버전관리시스템(Version Control System)에 있어서는 전 세계적으로 사실상의 표준(de facto standard)으로 자리하고 있습니다. 개발자라면 전 세계적으로 모르는 사람이 없을 정도이지만, 누구에게나 '처음'은 있습니다. 이 책은 '처음'인 사람들이 '시작하기'에 두려움을 느끼지 않도록 아주 기본적인 개념부터 쉽게 설명합니다.
그래서 아래와 같이 '버전관리'부터 안내를 시작합니다.
이런 도입형 기본서가 곧바로 '깃(Git)'에 대한 설명부터 시작을 했다면 굳이 Git (git-scm.com) 과의 차이가 없었을 겁니다.
시작하는 사람들에게 모든 것이 낯설텐데, 이런 방식으로 안내하는 것은 소개서가 존재해야 하는 까닭을 제대로 짚었다고 생각합니다. 점점 더 많은 것이 공개되고 공유되는 세상에서 여전히 도입서 또는 입문서가 필요한 까닭은 그럼에도 처음인 사람이 이해하지 못하는 낯선 영역이 있기 때문인데, 이 책은 그런 점에서 꽤 기본서로서 기본기가 매우 충실합니다.
'깃(Git)'을 사용하거나 배우는 대부분은 클라우드로 제공하는 3대장 '깃허브(GitHub)', '깃랩(GitLab)', '비트버켓(BitBucket)' 가운데 하나는 사용하고 있고, 가장 대표적인 '깃허브(GitHub)'를 통해 '깃'을 활용하는 방법을 안내하는 것은 너무도 당연한 선택입니다. 이 역시 전 세계적으로 거의 모든 사람들이 '깃'을 배우고 실습하고 관리하기 위해 따르는 트랙이기에 매우 적절하다고 생각합니다.
무엇보다 이 책의 장점은
사실 깃을 배울 수 있는 방법은 여러 곳이 있고, Git (git-scm.com)과 같이 전 세계 사람들이 기본적으로 방문하는 곳이 있습니다. 그리고 깃허브에 대해서도 깃허브의 공식 학습 사이트인 GitHub Skills 같은 곳도 있습니다.
하지만, 초보자들에게는 이런 곳들을 곧바로 활용하기는 어렵습니다. 개념을 이해하는 데에도 적지 않은 시간이 필요하고 실무적으로 언제 어떻게 쓸 것이지 난감합니다.
그리고 무턱대고 깃허브를 사용해서 전 세계적으로 인기있는 텍스트 에디터(프로그래밍용 툴)인 '비주얼 스튜디오 코드(Visual Studio Code 혹은 VS Code)' 같은 도구를 사용해서 협업을 통해 소스코드를 관리하다보면 당황스런 상황을 매우 많이 만나게 됩니다.
이런 당황스런 상황에도 놀라지 않게 '실무에서 발생할 상황'을 마치 테스트 사례를 만들어 해결하는 걸 보여주기에 단순히 명령어를 설명하는 것과 차이가 확실히 있습니다.
자 그럼 이 책의 구조를 한 번 살펴보겠습니다
이 책은 7일내에 책을 마스터하도록 유도하고 있습니다.
'iTshirt'라는 오픈소스를 만들고 이를 통해 회사를 설립한 후 개발자들이 늘어가면서 발생되는 사정을 흥미진진하게 풀어놓고 있는데, 스타트업의 성장스토리를 보는 것처럼 흥미로우면서도 '깃(Git)'과 '깃허브(GitHub)'를 적재적소에서 지루할 정도로 꼼꼼하게 개념을 설명하며 원리를 이해시키기 위해 노력합니다.
특히 '챕터(CHAPTER) 3'은 '여러 명이 함께 Git으로 협업하기'라는 제목으로 앞서 말씀드린 것처럼 실무에서 협업하기 위한 방법과 협업하며 맞이하게 될 당황스런 상황을 매우 흥미롭게 풀어냅니다.
'챕터(CHAPTER) 4'는 '포크'라고 하는 반드시 이해해야할 개념을 안내한 후에 원격 저장소를 둘 이상 만들어 협업하는 상황을 안내하는데, 이미 만들어진 오픈소스를 활용해서 추가개발을 할 때 반드시 접하게 되는 내용이라 초보자에게 딱 필요한 내용을 잘 설명해주고 있습니다.
'챕터(CHAPTER) 5'는 성장에 따라 여러 개발자가 개입하게 됨에 따라 알아둬야할 개념들인 '어멘드', '체리 픽', '리셋', '리버트', '스태시' 등을 다루며 각자의 차이점과 활용에 대한 실무적인 팁을 잘 안내해줍니다.
그 밖에 '깃허브(GitHub)'를 더 세밀하게 다룰 수 있는 팁을 '챕터(CHAPTER) 6'에서 'GitHub 100% 활용하기'라는 제목으로 안내하고 있습니다. 과연 4일차에 다룰 수준인지는 다소 의문스럽긴 하지만 한 번 일별하고 나면 실무에서 꽤 쏠쏠하게 쓸 수 있지 않을까 생각합니다.
<심화편>에서 'CLI 환경에서 버전 관리 시작하기'라는 제목으로 좀 더 개발자들이 편하게 쓸 수 있도록 안내합니다. 기본적인 개념과 원리는 '그래픽 유저 인터페이스(GUI, graphic user interface)'로 이해시킨 후 개발자들이 프로그래밍과 소스들의 버전컨트롤을 좀 더 손쉽게 하도록 하여 '초보자'들이 실무에 적응하기 쉽게 도와줍니다.
딱 실무적을 활용하기 쉽게 구성을 잘하고, 학습에도 마치 스타트업의 성장스토리를 입혀서 안내를 하고 있기에 개념위주의 설명글이 갖는 한계를 실무적으로 잘 소개하고 있습니다.
이 책에서 살짝 아쉬운 점은
비단 이 책만의 아쉬움이 아니라 이런 기술서적의 공통된 한계일텐데요.
거의 모든 디지털기술이 기하급수적으로 변화하고 발전하고 있다보니 책에서 제공하는 화면과 실제 화면의 차이가 발생합니다. 바로 변화에 대한 빠른 적응이 기술서적의 아쉬움이자 한계가 아닐까 싶습니다.
대표적인 '깃허브(GitHub)' 서비스인 '코드스페이스(codespaces)'가 누락된 것은 아쉬움이 남습니다. '코드스페이스'가 '깃허브(GitHub)'는 초보자일지라도 개발에 있어서는 초보가 아닌 사람들에게 매우 유용한 점에 비춰보면 핵심요소가 시간적 차이로 인해 빠졌다는 점은 이 책이 '개정판'임에도 추가적으로 개정을 하게 되면 반드시 다뤄야 할거라고 믿습니다.
게다가 2023년 마이크로소프트가 5월에 실시한 개발자용 행사인 '빌드(Build)'가 있고난 후에 인공지능 패어 프로그래밍 서비스인 '코파일럿(Copilot)'이 활성화 되기 시작할 예정이라 메뉴에 등장한 'Copilot'이 누락된 점은 다소 아쉽다고 생각합니다. 머지 않아 '코파일럿 엑스(Copilot X)'가 상용화 될 상황예정이라 추가적인 개정이 있을 때 이 점을 꼭 다뤄줬으면 합니다.
그럼에도 이 책은 초보자로서 기초적인 개념을 익혔지만 실무에서 협업을 하게 되면 반드시 당황하게 될 '충돌'과 '병합(merge)' 등이 어떻게 발생하고 해결하면 되는 지를 알려주는 점에서 실무용 실습서로서의 가치가 매우 출중합니다.
혼자서 '깃(Git)'과 '깃허브(GitHub)'를 사용하는 경우라면 한계가 있을 실무에서 반드시 발생하는 상황을 어떻게 해결할 지를 꼼꼼히 알려주는 점에서 '참고서'로서는 더할 나위 없이 훌륭하고 그래서 '개정판'까지 나오게 된 것이라고 생각합니다.
아마 초보자로서 겪게될 난감한 상황은 "챕터(CHAPTER) 3"에서 시작해서 특히 "챕터(CHAPTER) 4"와 "챕터(CHAPTER) 5"에서 거의 해결이 가능하지 않을까 싶습니다. "챕터 4와 5"는 초보자들의 손때가 가장 많이 묻을 곳이 될 거라고 조심스레 예측합니다.
추천합니다!!!
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
서평시작
안녕하세요?
매달 한빛미디어에서 서평을 하게 되었습니다.
이번에는 개발자라면 누구나 알고 있을 '깃(Git)'과 '깃허브(GitHub)'를 쉽게 시작하도록 안내하는 책을 읽고 서평을 남기게 되었습니다.
'깃(Git)'은 버전관리시스템(Version Control System)에 있어서는 전 세계적으로 사실상의 표준(de facto standard)으로 자리하고 있습니다. 개발자라면 전 세계적으로 모르는 사람이 없을 정도이지만, 누구에게나 '처음'은 있습니다. 이 책은 '처음'인 사람들이 '시작하기'에 두려움을 느끼지 않도록 아주 기본적인 개념부터 쉽게 설명합니다.
그래서 아래와 같이 '버전관리'부터 안내를 시작합니다.
이런 도입형 기본서가 곧바로 '깃(Git)'에 대한 설명부터 시작을 했다면 굳이 Git (git-scm.com) 과의 차이가 없었을 겁니다.
시작하는 사람들에게 모든 것이 낯설텐데, 이런 방식으로 안내하는 것은 소개서가 존재해야 하는 까닭을 제대로 짚었다고 생각합니다. 점점 더 많은 것이 공개되고 공유되는 세상에서 여전히 도입서 또는 입문서가 필요한 까닭은 그럼에도 처음인 사람이 이해하지 못하는 낯선 영역이 있기 때문인데, 이 책은 그런 점에서 꽤 기본서로서 기본기가 매우 충실합니다.
'깃(Git)'을 사용하거나 배우는 대부분은 클라우드로 제공하는 3대장 '깃허브(GitHub)', '깃랩(GitLab)', '비트버켓(BitBucket)' 가운데 하나는 사용하고 있고, 가장 대표적인 '깃허브(GitHub)'를 통해 '깃'을 활용하는 방법을 안내하는 것은 너무도 당연한 선택입니다. 이 역시 전 세계적으로 거의 모든 사람들이 '깃'을 배우고 실습하고 관리하기 위해 따르는 트랙이기에 매우 적절하다고 생각합니다.
무엇보다 이 책의 장점은
사실 깃을 배울 수 있는 방법은 여러 곳이 있고, Git (git-scm.com)과 같이 전 세계 사람들이 기본적으로 방문하는 곳이 있습니다. 그리고 깃허브에 대해서도 깃허브의 공식 학습 사이트인 GitHub Skills 같은 곳도 있습니다.
하지만, 초보자들에게는 이런 곳들을 곧바로 활용하기는 어렵습니다. 개념이 이해되는 데에도 적지 않은 시간이 필요하고 실무적으로 언제 어떻게 쓸 것이지 난감합니다.
그리고 무턱대고 깃허브를 사용해서 전 세계적으로 인기있는 텍스트 에디터(프로그래밍용 툴)인 '비주얼 스튜디오 코드(Visual Studio Code 혹은 VS Code)' 같은 도구를 사용해서 협업을 통해 소스코드를 관리하다보면 당황스런 상황을 매우 많이 만나게 됩니다.
이런 당황스런 상황에도 놀라지 않게 '실무에서 발생할 상황'을 마치 테스트 사례를 만들어 해결하는 걸 보여주기에 단순히 명령어를 설명하는 것과 차이가 확실히 있습니다.
자 그럼 이 책의 구조를 한 번 살펴보겠습니다
이 책은 7일내에 책을 마스터하도록 유도하고 있습니다.
'iTshirt'라는 오픈소스를 만들고 이를 통해 회사를 설립한 후 개발자들이 늘어가면서 발생되는 사정을 흥미진진하게 풀어놓고 있는데, 스타트업의 성장스토리를 보는 것처럼 흥미진진하면서도 '깃(Git)'과 '깃허브(GitHub)'를 적재적소에서 지루할 정도로 꼼꼼하게 개념을 설명하며 원리를 이해시키기 위해 노력합니다.
특히 '챕터(CHAPTER) 3'은 '여러 명이 함께 Git으로 협업하기'라는 제목으로 앞서 말씀드린 것처럼 실무에서 협업하기 위한 방법과 협업하며 맞이하게 될 당황스런 상황을 매우 흥미롭게 풀어냅니다.
'챕터(CHAPTER) 4'는 '포크'라고 하는 반드시 이해해야할 개념을 안내한 후에 원격 저장소를 둘 이상 만들어 협업하는 상황을 안내하는데, 이미 만들어진 오픈소스를 활용해서 추가개발을 할 때 반드시 접하게 되는 내용이라 초보자에게 딱 필요한 내용을 잘 설명해주고 있습니다.
'챕터(CHAPTER) 5'는 성장에 따라 여러 개발자가 개입하게 됨에 따라 알아둬야할 개념들인 '어멘드', '체리 픽', '리셋', '리버트', '스태시' 등을 다루며 각자의 차이점과 활용에 대한 실무적인 팁을 잘 안내해줍니다.
그 밖에 '깃허브(GitHub)'를 더 세밀하게 다룰 수 있는 팁을 '챕터(CHAPTER) 6'에서 'GitHub 100% 활용하기'라는 제목으로 안내하고 있습니다. 과연 4일차에 다룰 수준인지는 다소 의문스럽긴 하지만 한 번 일별하고 나면 실무에서 꽤 쏠쏠하게 쓸 수 있지 않을까 생각합니다.
<심화편>에서 'CLI 환경에서 버전 관리 시작하기'라는 제목으로 좀 더 개발자들이 편하게 쓸 수 있도록 안내합니다. 기본적인 개념과 원리는 '그래픽 유저 인터페이스(GUI, graphic user interface)'로 이해시킨 후 개발자들이 프로그래밍과 소스들의 버전컨트롤을 좀 더 손쉽게 하도록 하여 '초보자'들이 실무에 적응하기 쉽게 도와줍니다.
딱 실무적을 활용하기 쉽게 구성을 잘하고, 학습에도 마치 스타트업의 성장스토리를 입혀서 안내를 하고 있기에 개념위주의 설명글이 갖는 한계를 실무적으로 잘 소개하고 있습니다.
이 책에서 살짝 아쉬운 점은
비단 이 책만의 아쉬움이 아니라 이런 기술서적의 공통된 한계일텡데요.
거의 모든 디지털기술이 기하급수적으로 변화하고 발전하고 있다보니 책에서 제공하는 화면과 실제 화면의 차이가 발생합니다. 바로 변화에 대한 빠른 적응이 기술서적의 아쉬움이자 한계가 아닐까 싶습니다.
대표적인 '깃허브(GitHub)' 서비스인 '코드스페이스(codespaces)'가 누락된 것은 아쉬움이 남습니다. '코드스페이스'가 '깃허브(GitHub)'는 초보자일지라도 개발에 있어서는 초보가 아닌 사람들에게 매우 유용한 점에 비춰보면 핵심요소가 시간적 차이로 인해 빠졌다는 점은 이 책이 '개정판'임에도 추가적으로 반드시 다뤄야 할거라고 믿습니다.
게다가 2023년 마이크로소프트가 5월에 실시한 개발자용 행사인 '빌드(Build)'가 있고난 후에 인공지능 패어 프로그래밍 서비스인 '코파일럿(Copilot)'이 활성화 되기 시작할 예정이라 메뉴에 등장한 'Copilot'이 누락된 점은 다소 아쉽다고 생각합니다. 머지 않아 '코파일럿 엑스(Copilot X)'가 상용화 될 상황예정이라 추가적인 개정이 있을 때 이 점을 꼭 다뤄줬으면 합니다.
그럼에도 이 책은 초보자로서 기초적인 개념을 익혔지만 실무에서 협업을 하게 되면 반드시 당황하게 될 '충돌'과 '병합(merge)' 등이 어떻게 발생하고 해결하면 되는 지를 알려주는 점에서 실무용 실습서로서의 가치가 매우 출중합니다.
혼자서 '깃(Git)'과 '깃허브(GitHub)'를 사용하는 경우라면 한계가 있을 실무에서 반드시 발생하는 상황을 어떻게 해결할 지를 꼼꼼히 알려주는 점에서 '참고서'로서는 더할 나위 없이 훌륭하고 그래서 '개정판'까지 나오게 된 것이라고 생각합니다.
아마 초보자로서 겪게될 난감한 상황은 "챕터(CHAPTER) 3"에서 시작해서 특히 "챕터(CHAPTER) 4"와 "챕터(CHAPTER) 5"에서 거의 해결이 가능하지 않을까 싶습니다. "챕터 4와 5"는 초보자들의 손때가 가장 많이 묻을 곳이 될 거라고 조심스레 예측합니다.
이번에 새로운 곳으로 이직을 하면서(물론, 이직한지 1년이 넘었지만..) GIT에 대한 중요성을 굉장히 인지하게 되었다.
그 전 회사는 깃으로 코드를 관리하지 않았기에 이러한 고충을 몰랐었다.
하지만, 이번 회사는 Git lab 으로 코드들을 관리하고 있었고 이를 활용하기 위해 사내에서 진행하는 깃의 가장 기초적인 교육을 들었던 기억이 있다.
그 당시에는 깃에 대한 개념 보다는 실질적으로 깃을 사용할 수 있는 기초적인 명령어들 위주로 교육이 진행되었다.
(예를 들면, Pull, Push 등)
이제 책 소개를 하기전 목차를 먼저 보고 진행하고자 한다.
CHAPTER 0 빠른 실습으로 Git, GitHub 감 익히기
[기본편] PART 1 GUI 환경에서 버전 관리 시작하기
CHAPTER 1 GUI를 위한 버전 관리 환경 구축하기 CHAPTER 2 혼자서 Git으로 버전 관리하기 CHAPTER 3 여러 명이 함께 Git으로 협업하기 CHAPTER 4 둘 이상의 원격 저장소로 협업하기 CHAPTER 5 실무 사례와 함께 Git 다루기 CHAPTER 6 GitHub 100% 활용하기
[심화편] PART 2 CLI 환경에서 버전 관리 시작하기
CHAPTER 7 CLI 환경에서 Git 명령어 살펴보기 CHAPTER 8 CLI 환경에서 브랜치 생성 및 조작하기 CHAPTER 9 Git 내부 동작 원리
CHAPTER 10 인증 기능 살펴보기
목차를 보면 알겠지만, 내가 이전에 들었던 교육에 대한 내용들은 모두 "CHAPTER 0 빠른 실습으로 Git, GitHub 감 익히기" 에서 보여지는 부분들이었다.
교육과 비슷하지만 좀 더 상세한 설명들이 많아 좋았다. 물론, 개념을 위주로 설명한 터라, CHAPTER 1에서 실제로 활용하는 화면을 통해서 설명해주었으니 안심하고 지나가도 된다.
개인적으로 해당 도서에서 가장 이해하고 싶었던 부분은 팀원들끼리의 형상관리를 하며 생기는 다양한 갈등과 에러들을 피하기 위해 선택하여 읽고자 했다.
해당 부분을 이해하기 위해서는 브랜치(Branch) 개념이 필요했다. 각각의 사람들이 브랜치를 만들고 그것을 운영에 반양하기 위한 작업들과 중간에 충돌이 일어나는 경우 등 다양한 예시와 케이스를 보여주어 쉽게 이해할 수 있었다.
실제 배포하는 부분에서 운영할때, 각각 브랜치로 작업을 하며 재배포하는 부분까지 설명들이 상세하게 적혀있어 쉽게 이해할 수 있어서 좋은 것 같다.
단점까지는 아니지만, 현재 우리팀은 파이참에서 보여지는 브랜치들을 보고 관리하는데 책은 소스트리를 사용해서 진행하고 있다.
소스트리가 더 대중화되어 사용되고 있는지 모르겠지만, 개인적인 부분에서는 조금 아쉽게 느껴졌다.
하지만, 그럼에도 개념적인 부분과 실무적인 부분을 모두 융화되어 예시를 들며 설명을 진행해 나가 좋은 도서라고 느꼈다.
팀 개발을 위한 GIt, GitHub 시작하기에서는 깃헙 회원가입 및 깃 설치부터 소스트리(GUI)를 활용하여 커밋, 푸시를 비롯하여 브랜치 생성, 체크아웃, 풀리퀘스트 등등 깃 사용 방법을 배운다. 어멘드, 체리 픽 등 깃 응용 명령어까지 다룬뒤 이제껏 배웠던 내용을 CLI 환경에서 사용해본다. 그리고 더 나아가 애드, 커밋 명령의 동작 원리와 커밋 객체도 살펴본다.
Git은 리눅스를 만든 리누스 토발즈가 만든 소스 코드 버전 관리 툴입니다. 강력하고 편리하지만 쉽지는 않습니다. 인터넷에서 Git 관련하여 좋은 학습자료나 팁을 많이 얻을 수 있습니다만, 여전히 입문자에게는 많이 어려운 도구인 것 같습니다.
제 경우, 개발 목적으로 Git이나 GitHub을 접한 것이 아니라 솔직히 다행이라고 생각합니다. 개인 학습 내용을 정리하여 나중에 참고용으로 쓸 코드를 GitHub에 올리는 목적으로 이용하기 시작했기 때문에, 천천히 시행착오를 겪으면서 제게 필요한 만큼만 사용법을 습득하면 되었기 때문입니다.
그럼에도 불구하고, 인터넷 검색을 통해 제 상황에 딱 필요한 커맨드 코드 한줄을 얻어내는데는 며칠이 소요되는 경우도 있었습니다. git bash 같은 CLI에 적어 넣을 딱 한줄이면 되는데, 누구나 다 아는 한줄만 인터넷에 잔뜩이고, 제가 필요로 하는 한줄은 Stack Overflow를 뒤져가며 눈에 잘 들어 오지도 않는 구어체 영문들을 떠듬 떠듬 읽어내야 얻을 수 있는 경우도 종종 있었습니다.
Git 자체가 리눅스개발자놈들이 만든 것이라 그런지, 인터넷에 올라온 튜토리얼들도 사용자에 대한 배려나 친절함이란 찾아 보기 어렵습니다. 그래서, 이 책 "팀 개발을 위한 Git, GitHub 시작하기"를 읽어 가면서 진작에 책을 찾아 볼 껄하고 후회를 하기도 했습니다. 이 책은 Git이라는 블랙박스 같은 도구를 시각적으로 설명하고 어느정도 따라 하다보면 개발작업이나 협업에 있어서 없어서는 안 되는 필수도구로 사용할 수 있도록 만들어 줍니다.
Git 을 사용하는 방법으로 GUI툴인 소스트리를 먼저 설명한 것도 좋았습니다. Git을 처음 접할 때 커밋이니 브랜치니 하는 여러 생소한 단어나 개념들을 많이 만나게 됩니다. 리눅스 서버 작업을 해 본 사람들은 바로 까만 터미널 환경에 커서만 껌뻑거리는 CLI를 써도 좋겠지만, 입문자들은 아무래도 GUI로 먼저 접해 보는 것이 좀 더 쉽게 다가갈 수 있는 방법이라 여겨집니다. 어려워서도 있지만, 너무 생소해서 Git을 포기하는 경우도 많은 것 같습니다.
제 경험으로는 Git 이나 GitHub은 개념 파악이 일단 중요하고, 이후에는 내가 원하는 목적대로 쓸 수 있게 해 주는 실행방법이라든가 CLI 에 적어 넣을 커맨드 한 줄을 기억하는 것으로 일단은 문제없이 이용 가능합니다. 그 한 줄을 찾는게 어려운데, 그 부분을 이 책이 잘 긁어 주고 있습니다.
Git 은 아마도 자동차 운전이랑 비슷한 것 같습니다. 처음엔 이거 이렇게 쓰면 나때문에 망가지는 거 아닌가 싶어서 겁도 나고, 뜻 모를 에러를 만나게 되는 상황에 처하면 누군가 긴급출동이라도 해 주면 좋겠다 싶어 지더라구요. 하지만, 결국에는 개발자를 도와주는 "도구"이기 때문에, 한줄 한줄 노하우가 쌓이면, 그로인한 뿌듯함에 어디 가서 Git 쓸 줄 안다고 자랑하고 싶어지게 되더라구요. 괜히 누군가 Git 쓸 일 없나 기웃거리게 되기도 합니다.
이 책 "팀 개발을 위한 Git, GitHub 시작하기"로 그 뿌듯함을 좀 더 빨리 얻어 보세요. 아, 7일 완성 로드맵이 제시되어 있는데 그렇다고 7일만에 뚝닥 머릿속에 입력된다는 보장은 없습니다. 굳이 다 따라할 필요도 없구요. 필요한 부분만 찾아서 보면 됩니다. 필요한 누군가에게 방법을 찾아서 알려 줘도 좋습니다.
끝으로 이 책은 3부에 해당하는 내용을 전자책으로 무료 배포하고 있습니다. 중고급자를 위한 명령어들을 소개하는 내용이라고 합니다. 제가 주로 이용하는 예스24 같은 온라인 서점에서 "팀 개발을 위한 git"정도로 검색하면 무료배포판을 찾을 수 있습니다. 맛보기로 책의 내용을 조금 보여 주는 상품이 아니라 책의 3부에 해당하는 내용이므로 꼭 다운 받아 두시기 바랍니다. eBook이라 무료로 구매하여 각 온라인 서점이 제공하는 이북리더앱에서 바로 볼 수 있습니다.
코딩을 어느정도 배우고 나서 팀프로젝트를 진행하다보면 코딩을 협업할 수 있는 도구에 대한 궁금증이 자연스럽게 이어진다. 그러면서 Git이란 단어가 눈에 들어오고, Github가 무엇인지 궁금해지며 검색을 시도하게 되고, 그리고 느끼는 첫 느낌은 아~ 복잡하다... 그냥 검색으로 공부할 수 있는 부분은 아니구나란 생각을 하게 된다.
설명이 잘 되어 있는 기초 책이 있으면 좋겠다는 생각을 할 때 <한빛미디어>의 '팀 개발을 위한 git, github 시작하기' 책이 눈에 딱 들어왔다.
Chapter0에서는 Git, GitHub를 맛보기를 통해 좀더 공부하고 싶은 맘을 상승시켜주며, 제1장인 Chapter1~6까지 혼자서, 협업으로, 그리고 실전으로 사용하는 Git 등 Git으로 할 수 있는 기
본부터 협업까지 궁금증을 모두 해결해 주는 책이라고 할 수 있다. 그리고 GUI 환경에서의 실습으로 이루어져 사용과 학습에 편리함을 느낄 수 있다.
제2장은 CLI 환경에서 Git 명령어를 실행하기 위해 필요한 가장 기본적인 CLI 명령어를 배울 수 있다. 윈도우 환경에서만 코딩을 배우고 진행한 개발자에게 CLI 환경은 다소 어려울 수 있는데 함께 다루어져 있어서 자신의 환경에 맞게 학습할 수 있어서 좋다.
Git은 유명한 리눅스 창시자 리누스 토발즈가 리눅스의 소스 코드를 관리하기 위해 만들었다. 오늘날 Git은 빠른 응답성, 브랜치 관리의 편리함, 협업 뿐만 아니라 개인 작업 시에도 다양하게 사용되며, GitHub의 등장으로 Git은 개발자에게 필수적인 도구가 되었다.
Git은 강력하고 편리하지만 여전히 입문자에게는 어려운 도구이다. 이 책에서는 소스트리를 이용하여 Git을 사용하는 방법을 설명한다. 1부에서는 GUI를 사용하고, 2부에서는 CLI를 사용한다. 입문자는 1부 GUI 부분만 익히면 Git과 GitHub를 사용하는 데 큰 어려움이 없을 것이다.
재미있는 사실은 책에서는 고작 8개의 CLI 명령어를 사용하지만 우리가 실무에서 사용할 거의 모든 것이라는 점이다. 이 책의 장점은 다음과 같다.
Git을 시각적으로 배울 수 있는 GUI를 이용하여 동작 원리를 쉽게 익힐 수 있다.
실무에서 많이 쓰는 응용 명령어를 실무 사례와 함께 알려준다.
쉽고 자세한 설명이 제공된다. "여기서 잠깐"이라는 항목들은 책을 읽다가 모르는 용어나 왜 이렇게 사용하는지에 대한 궁금증을 해결해준다.
중급 사용자를 위한 무료 전자책을 제공하고 있다.
책 전체를 7일 안에 끝낼 수 있다는 점을 언급하고 있지만, CLI 부분부터는 어려운 내용들이 많이 등장한다. 다른 친구나 동료 한 명과 함께 실습을 해보면서 7일 내에 너무 부담을 가지지 않고, 차근차근 해보는 것이 좋을 것 같다.
이 책 표지의 "소스 코드 버전 관리를 위한 깃, 깃허브, 오픈 소스 참여", "GUI 환경에서 쉽게 배우고 CLI 환경에서 레벨업한다!"라는 문구가 이 책의 지향점을 잘 나타내고 있다.
프로젝트 수행 시 개발자들과의 협업에서 코드 버전관리가 중요하다. Git을 처음 사용하게 되면서 자료를 찾는 것이 힘들었다. 검색을 하더라도 각자의 입장에서 필요한, 그리고 중요한 사항들을 정리하기 때문에 Git 입문자들에게 필요한 기초 지식에 대한 개념 정리와 실행 과정에 대한 설명을 찾기는 굉장히 힘이 들었고, 어느 정도 사용할 수 있는 수준까지 되기에는 시간이 오래 걸린다. 물론 자세히 알지 못하면서 사용하던 갓만 사용하는 그런 상태에 안주하게 된다.
이 책은 크게 2개의 Part로 나뉘어 있다.
Part 1. 기본편 - "GUI 환경에서 버전 관리 시작하기"
GitHub, Git 설치, Git 사용을 도와주는 GUI 프로그램인 Atlassian의 Sourcetree 설치 및 사용 방법에 대한 상세 정보가 캡쳐, 도표, 그림으로 이해하기 쉽도록 설명하고 있다.
Part 2. 심화편 - "CLI 환경에서 버전 관리 시작하기"
GUI보다 다양한 기능을 사용할 수 있고, 작업 속도 또한 더 빨라진다고 하는 CLI 환경에서 작업을 위한 Git Bash 활용과 명령어, 명령어 옵션 설명, GUI 환경에서의 작업을 CLI 환경에서 하는 방법을 설명하고 있다. 특히 입력하는 Git 명령어에 일일히 형광펜 표시가 되어있어 가독성이 좋다.
저자들은 맺음말에서 아래와 같이 학습자들에게 아낌없이 정보를 제공하고 있다.
- "[eBook] 팀 개발을 위한 Git, GitHub 시작하기 (무료특별판) 74p"
- 영문 및 한글 Pro Git 오픈 소스 프로젝트의 2판 Pro Git Book
"무조건 쉽게 쓰자. 단, 제대로!"라는 지은이의 말에 적힌 표제처럼, 이 책은 입문자에게 필요한 걸 설명하고 있다. 계속 반복해서 읽고, "Git을 열심히 사용"하며 저자들이 권장하는 과정을 반복학습하면 Git을 편하게 사용할 수 있을 것 같다.
CLI로 바로 시작하기는 어려울 수 있다. 하지만 책에서도 그렇듯 GUI로 시작하면된다. GUI로 따라하기는 사실 어렵지 않다. 하지만 책과 함께라면 더 쉬워보이긴 한다. 책에 아쉬운 점은 소스트리만 있고, github desktop은 없다는 점... 근데 소스트리도 분명 팀 협업에 좋은 툴일 것이니 소스트리로 연습해도 좋을 것 같다. 물론 Git이 무엇인지 하나도 알지 못한다면!! 괜찮다. 책에 다 친절한 설명이 새심하게 나와있다. 테스트 레포를 하나 만들어두고, 책을 열심히 참고해가며 이것저것 만져볼 것을 추천한다.
저는 Git 관련해서 어느 정도 알고 있는 상태입니다. 현재도 사용하고 있고, 앞으로도 사용할 것이지만, 뭔가 더 자세히 알고 제대로 알고 싶어 해당 책을 신청하였고, e-book으로 받게 되었습니다.
"팀 개발을 위한 Git, GitHub 시작하기(개정판)"은 Git과 GitHub를 이용한 팀 개발의 실용성과 효율성을 깊이 있게 소개하는 도서로, 저자인 정호영과 진유림이 탁월한 접근 방식을 통해 독자들에게 이 중요한 도구들의 기능과 활용 방법을 잘 전달해줍니다.
이 책의 강점 중 하나는 Git과 GitHub의 기본적인 이해뿐만 아니라 실제 업무에서의 적용법에 대한 지침까지 제공한다는 것입니다. 또한, 이해를 돕기 위한 시각적 요소와 실습 예제가 풍부하여 깃에 대해 잘 모르는 초보 개발자가 이론적인 지식을 실제 스킬로 전환하는 데 크게 도움이 됩니다.
기본적인 커맨드부터 복잡한 프로젝트 관리에 이르기까지, Git과 GitHub의 다양한 기능을 체계적으로 배울 수 있어 초기 사용자부터 경험 많은 사용자까지 모두 유용하게 활용할 수 있을 것입니다. 특히 팀 작업에 적합한 전략들을 상세히 설명하고 있어, 개발 팀의 효율성을 높이는데 큰 도움이 될 것이라 생각합니다. 또한 실제 업무에서의 활용 방법을 제공함으로써 독자에게 실질적인 가치를 제공합니다. 이론적인 내용 뿐만 아니라 실제 예제를 통해 개념을 구체화하는 점이 특히 인상적이었습니다.
브랜치 관리, 코드 리뷰, 이슈 추적 등 Git과 GitHub에서 제공하는 기능을 최대한 활용하는 방법을 알려주어, 독자가 팀 프로젝트를 더욱 효과적으로 관리할 수 있게 도와줍니다.
특히, 이 책은 초보자와 경험 많은 사용자 모두에게 훌륭한 학습 자료가 될 수 있을 것입니다. 초보자는 기본적인 커맨드와 사용법을 배울 수 있을 것이며, 경험 많은 사용자는 복잡한 프로젝트를 관리하고 팀 협업을 최적화하는 전략을 배울 수 있을 것입니다.
제 생각에 이 책의 진정한 가치는 개발자들이 프로젝트를 관리하고 협업하는 데 필요한 실질적인 도구를 제공한다는 점입니다. 개발자로서 프로젝트의 성공을 위해 Git과 GitHub를 효과적으로 활용하는 방법을 이해하는 것은 중요한 요소이며, 이 책은 그 목적을 충분히 달성해줍니다. 따라서 "팀 개발을 위한 Git, GitHub 시작하기(개정판)"는 모든 개발 팀에게 필수적인 자료로 추천할 수 있습니다.
결론적으로, "팀 개발을 위한 Git, GitHub 시작하기(개정판)"은 Git과 GitHub를 이해하고, 효과적으로 활용하고자 하는 모든 개발자에게 강력히 추천할 수 있는 도서입니다. 그 덕분에 개인 또는 팀 프로젝트에 대한 생산성과 협업성을 높일 수 있을 것입니다.
git의 버전 관리 시스템을 다른 사람과 협업하여 쓸 수 있는 오픈소스 프로그램입니다. 단 학교에서 가르쳐 주지 않습니다. 스스로 공부합니다. 대학교 1학년 git github을 처음 배우며 맨붕 했던 기억이 있습니다. github은 오픈 소스를 가져올 수 있다는 것 때문에 반드시 알아야 합니다. 예를 들어, 저번에 새로 산 노트북에 우분투 22.04를 듀얼부팅 했을 때 문제가 생겼습니다. 우분투에서 와이파이 드라이버 Realtek RTL8852BE가 인식 되지 않는 것입니다. 구글링 해서 https://github.com/HRex39/rtl8852be에서 가져와 직접 컴파일 해 쓸 수 있었습니다.
2. 책의 내용
읽은 내용 중 기억에 남는 내용 위주로 적어 봤습니다.
checkout은 두 가지 사용처가 있습니다.
change branch
recover work tree file content 두 기능은 따로 다른 명령어로 분해 됐습니다. switch : 브랜치 변경 restore : 파일을 복구 하는 명령 이때 체크섬으로 checkout 하면, detached head가 되므로, 좋지 않습니다. 위의 두 명령어를 더 자주 사용합니다.
main master는 git에서 프로젝트를 만들었는지 github에서 만들었는지에 따라 다릅니다.
내 branch에서 main branch로 바로 merge 하지 말고, main을 내 branche에 marge 해본 후 에러가 없으면 main에 merge 하는 것이 좋습니다.
main branch에 tag를 붙혀서 버전을 나타낼 수 있습니다.
PR 보내기 위해서 fork한 후, upstream 등록한 후 rebase해서 fetch한 repo에 강제로 push 해야 합니다.
amend : push 이전 commit 수정합니다. 만약 push 했다면, 강제로 push 해야 합니다.
cherry-pick : 중간의 하나의 commit만 가져와서 반영하기
reset : soft mixed hard로 나뉘며 commit된 것을 원래 상태로 되돌리거나 없앱니다. mixed와 soft의 차이는 이전 것을 stage에 둘 것인가 말 것인가의 차이입니다. 원격 저장소에도 반영 도리려면 강제 push 해야합니다. 198p
revert : 새로운 커밋을 추가해 커밋을 되돌리는 방법입니다. 협업 할 때, 충돌 나지 않게 하기 위해 새로운 commit을 만드는 것입니다.
stash : 잠시 다른 commit으로 옮겨 갈 때, 임시로 저장하는 법.
PR 이름 짓는법
브랜치 보호 하는 법.
commit hash, commit checksum : commit 후 log에 나오는 문자열.