기존 코드에 영양을 주지 않도록 코드의 복사본을 만드는데, 이것을 브랜치(branch)라고 한다.
git branch <브랜치명>
git branch
git switch <브랜치명> // 최근에 나옴
git checkout <브랜치명>
git switch -c <브랜치명> // -c 는 create의 약자
git checkout -b <브랜치명> // -b는 branch의 약자
git add .
git commit -m "수정사항 작성"
git switch main
git checkout main
main에 가서 확인해도 브랜치에만 저장했기 때문에 main에는 코드가 수정되어 있지 않음
-> 브랜치에 있는 코드를 메인으로 합쳐야함
git switch main // 원본 브랜치(main)로 이동을 먼저 해준다
git merge <브랜치명> // 새롭게 기능을 개발한 <브랜치명>을 merge를 써서 코드를 합쳐준다.
실제 협업 시 git merge 명령어로 바로 합치는 경우는 거의 없고 github에서 합친다.
그 이유는 merge 전에 코드리뷰가 가능하고 충돌 여부 확인 및 테스트 자동화 등 다양한 이점이 있기 때문이다.
Pull request의 의미는 코드를 “기본 브랜치(main)로 당겨와 합치는 것(Pull)을 요청(Request)한다” 라는 뜻이다. 쉽게 말해 코드를 합쳐도 되는지 팀원들에게 물어보는 것이다.
git switch -c <브랜치명>
git checkout -b <브랜치명>
git add .
git commit -m "수정사항 작성"
git push origin <브랜치명>
최종 브랜치(main) <- 기능 브랜치(새롭게 기능을 개발한 브랜치명)
Files changed 메뉴에서 코드 변경점 확인 가능
Merge pull request 버튼 클릭 -> Confirm merge 버튼 클릭
Your branch is behind ‘origin/main’ by 2 commits, and can be fast-forwarded.
(use “git pull” to update your local branch)
→ “github repository보다 뒤쳐져있으니 git pull 명령어로 똑같이 맞추세요” 라는 뜻
git pull origin <브랜치명>
미니 프로젝트에서는 git을 전혀 사용하지 못해서 이번 팀프로젝트에서 처음으로 사용해봤는데, 너무 어려웠다. 팀원들의 도움을 받아 git clone하고 브랜치를 만들고 git pull 등 여러가지를 해봤는데 사실 명령어는 둘째치고 충돌하거나 내 코드가 팀원들의 잘 짜여진 코드에 똥망진창으로 흩뿌려질까봐 너무 걱정이 됐다. 비교하면 안 되는데 코드 작성 속도도 느리고 내가 들인 시간만큼 원하는대로 결과물이 나오지 않아 많이 속상했다. 그래도 팀원분들이 많이 토닥여주셔서 눈물 닦고 코드를 하나씩 작성해나가는 중인데 내일은 조금 더 만족스러운 결과물을 만들어내고 싶다.
잘하고 계시니까 힘내세요!!👍 익숙해지시면 속도도 빨라지실거에요~😊 앞으로도 화이팅!