오늘은 내배캠 본수업 1일차에서는 github를 다루는법을 배웠다.
현재 토이프로젝트를 나가면서 같이 프로젝트를 올릴 협업도구가 필요했는데 github와 git을 배울 수 있어서 좋았다.
일단 github를 쓰는 이유는 다음과 같다.
- 코드를 안전하게 저장할 수 있다.
- 개인 포트폴리오를 만들 수 있다.
- 다른 개발자들과 코드를 공유하며 협업할 수 있다.
개발자라면 github와 git은 정말 뗄레야 뗄 수 없는 사이인 것 같다.
일단 둘의 차이점을 보자면 아래와 같다.
git은 https://git-scm.com/downloads 이 주소에서 최신버전으로 다운받고 설치하면 된다.
설치가 완료되었으면 vs코드 터미널이나 cmd실행창을 열어 아래 명령어를 입력해 버전을 확인하고 version 2.42.0 이런식으로 버전이 맞게 잘 나온다면 설치가 잘된거다.
git -v
일단 협업을 하려면 cmd 창을 열어 git에 로그인 먼저 해주어야 한다.
$ git config --global user.name "userName"
$ git config --global user.email "user@email.com"
git에 사용할 "user@email.com"이나 "userName"은 아무거나 가능하며, 나중에 깃허브에 저장소에 git에서 사용한 이메일주소를 추가해줄 수 있다고 나와있다.
(나는..꼭 깃허브에 등록한이름이랑 이메일로 해야되는줄 알았다ㅜㅜ)
한 사람이 대표로 프로젝트 폴더를 하나 생성해주고 터미널에 다음 명령어를 입력해 저장소를 생성해준다.
// 저장소 생성
git init
// 모든 파일 추가
git add .
git commit -m "커밋 메시지를 여기다 작성"
github 사이트에 들어가서 new를 클릭해 레포지토리를 하나 생성해준다.
// 저장소 주소에 해당하는 github 레포지토리와 현재 내 컴퓨터의 git을 연결한다는 뜻이다.
$ git remote add origin <저장소 주소>
// 기본 branch 명을 main으로 변경한다는 뜻이다. 처음에 master로 설정되어 있는 경우 main으로 변경된다.
$ git branch -M main
// github repository의 main 브랜치에 코드를 올린다.
$ git push -u origin main
<저장소 주소>는 꺽쇠를 빼고 주소그대로를 입력해주면된다.
나머지 팀원들은 공유받은 레포지토리에 들어가 HTTPS부분에 코드를 복사해 주고 터미널에 다음 명령어에 주소부분에 붙여 넣어주면된다.
git clone <주소>
아래와 같은 유의사항을 주의하며 브랜치도 생성해 주어야 한다.
❗ 항상 주의해야할 점은 main (혹은 master) 브랜치에서 바로 코드를 변경하지 않아야 한다는 것입니다.
main 브랜치는 실제로 문제가 없는 배포용 브랜치이기도 하고, 다른 팀원들이 main에서 branch를 생성하기 때문에 문제가 있으면 안되기 때문입니다.
예를 들어, 누군가 main 브랜치에 기능을 만들고 바로 push 를 했는데, 그 기능에 문제가 있다면? 다른 팀원들도 모두 같은 문제를 떠안게 돼요! 그러니까 꼭 branch 를 새롭게 생성한 후 문제가 없을 때 main 브랜치로 합쳐주세요!
아래 명령어를 통해 브랜치를 생성해준다.
// 1. 브랜치 생성하기
$ git branch <브랜치명>
// 2. 브랜치로 이동하기
$ git checkout <브랜치명>
아래 명령어를 통해 add로 추가해주고 푸시로 저장해준다.
(브랜치명)$ git add .
(브랜치명)$ git commit -m "메세지"
(브랜치명)$ git push origin <브랜치명>
아래 명령어는 풀로 다른 사람이 수정한 코드를 받아오는걸 의미한다.
git pull origin main
github저장소에서 바뀐코드를 확인해볼 수 있다.
그리고 만약 충돌(conflict)이 발생한경우 머지할 브랜치(main)코드를 가져온 다음 깃허브에서 머지풀리퀘스트를 처리해주면 된다.
(브랜치명)$ git checkout <브랜치명> // 이미 해당 브랜치에 있으면 입력 안해도 상관 없음
(브랜치명)$ git pull origin main // main or master
그리고 내 로컬로 변경된 코드를 가져와주면 된다.
(브랜치명)$ git checkout main // main 브랜치로 이동 후 github에 새로 변경된 코드 가져와야 함
(main)$ git pull origin main
git에 사용법을 익히면서 충돌할 때 어떤식으로 작업하고 조율할지 팀원들과 충분한 의사소통을 해야겠다고 느꼈다.