git 처음부터 손대보기 : branch

LSA·2022년 3월 10일
0

웹개발 기본 상식

목록 보기
8/9
post-thumbnail

branch가 뭐야?

이전 글의 '브랜치'라는 단어 기억하시나요?사람마다 브랜치를 설명하는 단어는 많습니다.

저는 '분기점' 혹은 '평행세계'라고 말하고 싶습니다.

웹툰이나 웹소설뿐 아니라 요즘 창작물들의 트렌드는 '이세계물'이나 '회귀물'인 듯 한데, 개나소나 회귀를 하고 다른 세계로 건너가네요.(물론 보는 입장에선 재밌지만)
혹은 콘솔게임을 해본 사람들이라면, 게임 데이터를 세이브하는 방식도 익숙할겁니다.물론 아까 git commit이 게임 데이터를 세이브하는 과정과 비슷하다면, 브랜치는 조금 더 넓은 개념입니다. 회귀물을 예로 들었으니 회귀물 스토리를 하나 써봅니다.

용사 동글이는 마왕 뾰족이를 무찔렀습니다.
그런데 알고보니, 마왕 뾰족이는 가짜 마왕이였고 사실은 동글이와 같은 용사였습니다.
이때 신이 나타나 '내가 다른 시간의 분기점으로 데려가 줄게, 뾰족이를 살려내고 동료로 만들어서 모험을 계속하렴.' 이라고 말해줬습니다.
그렇게 이동한 다른 분기점의 세계 이름은 feature/time1 branch였는데..

우리는 이제 뾰족이를 살려낼겁니다.

branch에 대해 확실한 설명을 보고 싶다면 이곳으로..

01. git branch (브랜치명)

일단 신이 된 기분이라도 느껴보기 위해 브랜치를 만들어봅시다.

git branch feature/time1
= 브랜치를 하나 만들건데, 그 이름은 feature/time1 이야.

끝인가요? 네 끝입니다.

02. git branch

내가 만든 브랜치가 잘 있는지 확인해보도록 하겠습니다.

git branch

오!진짜 생겼네요. 위의 feature/README 브랜치는 무시해주세요.과제용이에요.
그리고 현재 우리가 속한 브랜치는 ,* master 라고 초록글씨로 잘 나타나있습니다.
이제 다시 돌아가려면 q를 누릅니다.그냥 Q만 누르세요.

03. git checkout (브랜치명)

feature/time1 세계에서 뾰족이를 살려주기 위해 브랜치를 이동해야 합니다.

git checkout feature/time1

Switched to branch 브랜치명 이라는 문구가 뜨며 이동합니다.
빠르게 뾰족이를 살려줄게요.

이렇게 살아난 뾰족이는, 이 브랜치안에서 모험을 계속할수도 있고 원래 세계(master branch)로도 돌아갈 수 있습니다.

04. 브랜치 작업 push 하기

git add . 
git commit -m '뾰족이 추가'
git push origin feature/time1

이렇게 push 옆에 붙여줄 브랜치 이름을 적으면 됩니다.
이제 깃허브로 돌아가 origin 저장소에 살아난 뾰족이를 합쳐줄겁니다.

05. 브랜치 작업 Pull Request하기


pull requests 탭으로 들어가, new pull request 버튼을 누릅니다.
내 브랜치의 작업을 마스터 브랜치와 합치겠다는 요청입니다.
뭔가 알림창이 노란색으로 뜰텐데, 이 셀렉트박스를 선택하여 브랜치명을 선택합니다.

빨간 네모박스 안에 able to merge가 보이나요?자동으로 합칠 준비가 되었다는 말입니다. 다시 초록색 create pull request를 누릅니다.

상단에는 해당 변경사항의 제목을 씁니다.(저렇게 쓰면 안 됩니다.)
write 밑에는 변경사항의 좀더 세부적인 부분을 쓰면 되겠죠.
조금더 이상적인 제목과 내용은,

'Add : new file added'

-변경사항 1: 뾰족이.md 파일을 새로 추가했습니다.
-변경사항 2: feature/time1 브랜치를 새로 만들었습니다.

이 정도겠죠.사회생활을 해본 분들이라면 금방 알 거라고 생각합니다.
이렇게 내용 작성 후 초록 버튼을 누르면,

이렇게 요청 사항이 뜹니다.
빨간색 네모 박스 안에 체크 아이콘과 초록색 Merge pull request가 뜬다면, 정상적으로 merge(머지)가 가능하다는겁니다.

다시 코드 탭으로 돌아가보면...

야호~뾰족이가 살았어요.

06. 브랜치 삭제하기

일단 브랜치를 만들고 나서의 기본 흐름은 알았으니, 뾰족이가 있던 feature/time1 브랜치는 굳이 있을 필요가 없겠죠.
정확히 말하자면 보기 싫으니까 지울겁니다.

git branch -d feature/time1
-d 옵션을 이용하여 브랜치를 지우려니,이런 문구가 뜹니다.

아..다른 브랜치로 체크아웃 한다음에 지우라네요.
그래서 마스터로 체크아웃 했더니, 또 에러가 뜹니다.

뭔가 잘못됐다

git pull origin master

원격 저장소에 최신 사항을 올려뒀으니, 이제 로컬 저장소도 최신 상태를 반영해야 하는거겠죠?

git pull origin master
=원격 오리지널 저장소의 master 브랜치를 로컬로 가져와라


잘가져왔습니다.

그래도 안되길래, 왜그런가 했더니 feature/time1의 변경사항을 커밋하지 않아 체크아웃도 안되는 문제였습니다.
뭘 변경했냐면...

사실 뾰족이를 다시 삭제했습니다.
어차피 사라질 브랜치니까 뾰족이가 없어도 되지 않을까요?

브랜치가 완전히 merge되지 않았는데, 정말로 삭제할거냐고 묻는 메시지입니다.정말 삭제하려면,git branch -D feature/time1을 입력해야 합니다.
응 삭제

어쨌든 뾰족이는 한번 살렸으니까요.

마무리

이렇게 실습을 통해 git의 흐름에 대해 한번 기초를 잡았습니다.
사실 팀원들과 협업을 통해 git repo를 같이 쓰면서는 개념이 자리잡지 못해 단계도 꼬이고 conflict(충돌)도 많이 나서 고생했지만,이런 문제들은 에러문구를 검색하면서 풀어나가다 보면 언젠가는 해결되더라고요.

개인 프로젝트에선 이렇게 git 명령어를 아무렇게나 써도 되지만, 협업 단계에서는 commit 한번도 신중하게 진행해야할 것 같습니다.

profile
진짜 간단하게 작성한 TIL 블로그

0개의 댓글