[TIL] 2021.02.23

김경태·2021년 2월 23일
0

이머시브 과정 2일차가 되는 날이다.
오늘은 프리코스때 잠깐 배웠던 git 사용법에 대해 좀 더
공부하는 시간을 가지게 되었다. 오늘 무엇을 배웠는지 정리하면서 되짚어보자 !

🔥Today Lesson🔥

  • git 환경설정
  • git Workflow
  • 충돌(conflict) 해결
  • git branch

git 환경설정🚶

Git을 이용할 때에 필요한 환경 설정은 크게 두가지 입니다. 바로 사용자 정보와 에디터 설정입니다.

사용자 정보
Git을 설치하고 나서 가장 먼저 해야 하는 것은, 사용자 이름과 이메일 주소를 설정하는 것입니다.

$ git config --global user.name "user이름"
$ git config --global user.email "user이메일"

--global로 설정하는 것은 단 한번만 해주면 되는 설정입니다.

에디터
Git에서 커밋 메시지를 기록할 때에 (특히 merge commit 확인 메시지가 나올 때에) 에디터가 등장합니다.
기본값으로vi가 등장하지만 익숙치 않으면 nano 등으로 변경해주는 편이 좋습니다.

$ git config --global core.editor nano

git Workflow🏃

페어 프로그래밍을 할때 navigator와 driver역활을 바꿀때 마다 페어의 코드를 가져와 최신화 시키는 작업이 필요합니다.
1. 먼저 진행할 repository를 fork를 사용하여 복사해온다.
2. clone을 사용하여 각자의 local로 가져온다.
3. 나의 repository와 페어의 local을 reomote를 사용하여 연결한다.

$ git remote add pair (pair 주소)
$ remote -v // 연결되어 있는 주소 확인

  1. driver가 먼저 코드를 작성을 하고 commit을 한뒤 자신의 repository의 push 한다.

$ git push origin master (or branch명)

  1. 역활이 바뀌면 바뀐 driver는 바뀐 코드를 pull을 사용하여 자신의 local에 가져온다.

$ git pull pair master (or branch명)

주의사항
push를 할때는 반드시 자신의 repository에 pull을 할때는 상대의 repository에 해야한다 !

충돌(conflict) 해결🏃‍♀️

코드를 작성할때 두사람이 한 파일을 가지고 똑같은 라인을 변경하고 commit 및 push를 하게되면 아래와 같은 현상이 일어난다.

HEAD에 있는 코드가 내가 변경한 코드고 그 아래에 있는 코드가 상대방이 변경한 코드이다.

모두 text로 이루어져 있기 때문에 사용할 코드빼고 다지워주면 된다.

// vsCode의 경우 위에 사진처럼 클릭시 자동으로 지워주는 기능이 있지만 
// nano의 경우는 없다.

충돌상황을 해결했다면 add commit push 를 사용해주면 된다.

git branch🏃‍♂️

git branch는 분리된 작업 영역으로써 하나의 파일을 가지고 여러명이 작업을 할 때 각자 그 파일의 branch를 만들어 그곳에서 맡은 코드를 작성하고 원본에 병합하는 형식으로 작업을 합니다.

branch 사용방법

원하는 branch로 이동 할 때 checkout을 사용한다.

$ git chekout branch명

새로운 branch를 만들때는 checkout -b를 사용한다.

$ git checkout -b 브랜치명

※branch는 원본에 영향을 주지 않기 때문에 새로운 시도를 하고싶을때 사용하기도 한다.

하루를 마치며👋

오늘 배운것 들은 생각보다 어려운 부분은 아니였지만 실습을 진행할때 시작을 어떻게 해야할지 몰랐었다... 페어분이 잘 이끌어 주셔서 문제없이 진행할수 있었지만 다음부터는 어떻게 해야할지 나도 고민을많이 해봐야겠다 ! 그래도 오늘 좋은 페어분을 만나서 소통도 재밌었고 배운점도 많아 뜻깊은 시간을 보내게 되었다 : )
내일은 다시 javascript에 대해서 더 배우는 시간인데 잘 따라갈수있도록 열심히 해야겠다...!

profile
비전공자로 시작한 개발자 지망생입니다!

0개의 댓글