독학/[책] git, github

[Git/GitHub🐱] 팀 개발을 위한 Git, GitHub 시작하기 DAY2

최연재 2023. 2. 6. 02:37

2월 5일에는 챕터 3인 <여러 명이 git으로 협업하기>를 학습했다. 

 

교재 실습하기

📌 새 브랜치 만들기

❗현재 브랜치가 가리키는 커밋을 기준으로 새로운 브랜치 생성
❗새 브랜치 체크아웃을 선택하면 브랜치 생성과 동시에 만들어진 브랜치로 이동한다.
 

커밋을 추가하고 GitHub에서 새롭게 만든 브랜치 확인하

📌 브랜치 이동하기

① 소스트리 브랜치에서 체크아웃하려는(==이동하려는) 브랜치를 찾아 우클릭
② 체크아웃 브랜치명 클릭 (혹은 브랜치 더블클릭으로도 가능!)

원래 파란 줄에 origin/HEAD도 있어야 해요....

 

📌 브랜치와 브랜치 합치기, 병합(merge)

❗병합 커밋(Merge commit) : 서로 다른 부분이 있는 두 개의 커밋을 합치기
① 커밋

② 나만 사용하는 feature/cart 브랜치에 먼저 병합해서 문제가 없음을 확인한다.
③ 병합 커밋을 master 브랜치에 반영하기 위해 master 브랜치 체크아웃
④ Merge branch ... 커밋 우클릭 후 병합 늘릭
⑤ push

 
❗빨리 감기(Fast-forward) : 기존의 커밋과 같은 결과가 나온다. (새로운 추가나 충돌이 없음)
① 소스트리에서 합칠 기준이 될 브랜치로 체크아웃
② 병합하기를 원하는 커밋을 우클릭해 병합
③ push
 
❗충돌(Conflict) : 같은 부분이 서로 다를 때 발생하는 상태 -> 충돌이 난 부분을 확인 후 수동 선택

충돌 발생
스테이지에 올라가지 않은 파일에서 충돌이 발생했다.
vscode에서 해당 파일을 확인하면 다음과 같다.
이와 같이 수정한다.
충돌이 해결되었음을 확인할 수 있다.

; 해당 파일을 스테이지 위로 add하면 병합할 수 있는 상태가 된다.
 

📌 풀 리퀘스트

❗ 협력자에게 브랜치 병합을 요청하는 메세지를 보내는 것
① 새로운 브랜치로 작업 후 커밋할 때 [-에 바뀐 내용 즉시 푸시]를 클릭한다.

초록 버튼 클릭

❗베이스 브랜치 : 병합 결과물이 올라갈 브랜치
❗비교 브랜치 : 현재 기준 브랜치의 비교 대상이 되는 브랜치
 

confirm merge 버튼을 클릭하면 풀 리퀘스트 병합이 완료된다.
병합 완료!

❗ 소스트리에서는 패치를 클릭해서 Git에서의 새로운 이력을 업데이트한다.
❗ 이후 master 브랜치로 체크아웃하여 pull

master와 origin/master가 같은 커밋을 가리키고 있음을 확인할 수 있다.

 

📌 태그

❗master 브랜치에 있는 상태에서 소스트리 상단의 태그 아이콘을 클릭해 해시태그 이름을 적고 태그 추가 버튼 클릭

나중에 git bash에서 명령어 쳐서 head 만들어줬습니다....
원격저장소에 태그 푸시

 
 
이어서 챕터 4를 실습하다가 다음과 같은 오류를 만났다. 

구글링 결과 pull을 먼저 하고 push하면 된다고 해서 해봤는데 되지 않았다.
그래서 오류를 찾으려고 CLI 화면 창에서 git pull origin master를 쳤는데 "Already up to date"라는 문장이 나왔다. 그래서 다시 구글링으로  찾아봤는데 git fetch --all, git rest --hard origin/master를 하면 될 것 같았다. 해보니 소스트리에서는 원하는 결과가 나왔는데 GitHub에서는 새로고침을 해도 이전과 변화가 없었다. 일단 실습이 막혀서 실습 없이 책을 읽으면서 챕터 4를 끝까지 하긴 했다. 기존에 실습하면서 조금씩 삐끗했는데 그게 여기서 드러난 것 같아서 다시 처음부터 실습을 뜯어보고 구글링을 좀 더 해보려고 한다.  그래서 목표한 것보다 조금 늦게 책을 끝낼 것 같다.  문제를 고치면 3일차부터 다시 글을 올릴 생각이다.