
chapter 8,9에서는 깃의 내부 동작원리와 보안설정에 대해 배운다. 보안설정은 실습하면서 중간에 계정을 옮겨야 할 때 보안설정 관련 에러가 나는 독자를 위해 넣은 부분 같다. 구글검색에도 나오는 부분이라 생략한다. 깃 원리 이해하기 부분에서는 git init, add, commit, branch의 내부 동작원리를 살펴본다. git init 로컬저장소 .git 폴더 생성 예제 파일 생성, git status명령은 워킹트리, 스테이지, HEAD의 상태를 비교해서 보여주는 것. 현재 단순히 워킹트리에서만 새 파일이 생겼고 스테이지는 비어있고, HEAD는 없다. 예제파일 cat.txt의 체크섬은 ff5bda이다 git add 스테이지에 cat.txt가 추가됨. 이와 동시에 .git폴더 안에는 index라는..

chapter 6,7에서는 cli를 통해 지금까지 한 것들을 연습한다. 스테이지에 올리고 커밋하고 푸시, 풀 하는 것들은 기존에 하던 것들이라 진도가 좀 빨랐다. 다른 것들은 생략하고 3-way병합했을 때 병합커밋이 생기는데, 이것을 깔끔하게 관리할 수 있는 rebase를 연습해 보면서 지금까지 배운 것들을 복습할 수 있다. 일단 리베이스 실습을 하려면 base를 기준으로 merge 했을 때 충돌이 나는 상황을 만들어야 되니까 위와 같은 상황을 만들어줘야겠다. b414e2c커밋을 base로 해서 featrue1에서는 두 개의 커밋이 생겼고 그사이에 main브랜치에 하나의 커밋이 생긴 상황이다. 그전에 배운 방법은 feature1에서 main을 병합하면서 충돌을 해결하고 병합커밋을 새로 만든 뒤에 다시 m..

chapter4 개념 fork, clone, pull request, merge, rebase 같은 base를 기준으로 분기하는 브랜치 말고 어떤 원격저장소를 그대로 복사해서 쓰는 것이 fork이다. 오픈소스 프로젝트를 하기 위해 필요한 개념인데 하나의 프로젝트에 콜라보레이터가 많아지면 수많은 사람이 직접 원본저장소에 푸시할 수 있기 때문에 버전관리가 어려워질 수 있다. 그래서 원본저장소를 fork 해서 나의 원격저장소에 복사하고 마음껏 코드를 추가, 수정 후 나의 원격저장소를 원본저장소에 병합요청하면 원본저장소의 소유자(A)는 풀리퀘스트를 올린 사람(B)의 코드를 검토 후 원본저장소에 반영할 수 있다. 아래는 원본저장소 소유자를 A, 이를 포크 해서 자신의 원격저장소로 가져온 사람을 B 라고 한다 ki..

1일 차는 혼자 버전관리 하고 원격저장소를 다루는 것까지 배웠다. 2일 차는 여러 명과 버전관리를 하기 위해 브랜치, 머지, 풀의 개념에 대해 배운다. 1일 차는 나 혼자 버전관리를 하기 때문에 로컬, 원격 main브랜치를 넘나들며 최신, 구버전만 구분하며 작업을 해도 된다. 하지만 여러명이 작업을 병렬적으로 하게 되면 브랜치를 만들어야 한다. 말 그대로 나뭇가지처럼 큰 줄기(main)에서 작은 줄기(feature)들을 뽑아서 작업을 하는 것이다. 이때 규칙이 있는데. main브랜치에는 직접 커밋을 하지 않는다. 모든 기능개발을 시작하기 전에는 main을 기준으로 새로운 브랜치를 만든다. 브랜치 이름은 feature/{기능} 으로 하고 한 명만 커밋을 올린다. feature/{기능} 브랜치에서 작업이 끝..

현업에서 근무한 지 6개월 차가 되었지만 부끄럽게도 이제야 git을 제대로 파보려고 한다. 배포를 하면서 깃 관련 문제를 겪어 다른 직원분들을 기다리게 하고 시간을 보내서 굉장히 죄송하고 쑥스러웠다. git, github이 어려워서, 그리고 기능개발에 치우쳐서 당장 급한 것만 겨우 하면서 작업해 왔는데 더 이상 미룰 수 없다. 이번 기회에 git을 찢어보자. 첫번째 책은 쉽게 설명이 되어있기로 유명한 "팀개발을 위한 git, github 시작하기"이다. 1일 차 로컬저장소는 눈에 보이는 실체가 있는 녀석이었다. 잘 알지도 못하면서 처음 프로젝트를 만들면 터미널에 git init을 입력하고 대충 '아 로컬저장소가 만들어졌구나'생각했는데 git init을 입력하면 .git 이라는 폴더가 생기고 이 폴더가 바..