티스토리 뷰
팀끼리 프로젝트를 한다면 혼자 개발을 할 때 와는 달리 기능별로 맡은 분야 별로 작업을 진행 할 것입니다.
그 때 코드를 리뷰하고 충돌이 나지 않게 하면서 요구 사항을 관리하고 진척도를 확인해야 합니다.
그 때 필요한 깃 명령어 및 명령어 사용법, 깃허브 기능들을 정리 해 보았습니다.
branch - 프로젝트 복사본 만들기
동일한 프로젝트를 기반으로 서로 다른 버전의 코드를 만들어 낼때 사용합니다.
branch란 프로젝트 기준 코드인 main브랜치로부터 독립적인 작업 공간을 만들어주는 기능입니다.
여러 개발자가 서로 다른 버전의 코드를 만들 때 서로의 작업에 영향을 주고받지 않기 위해 필요합니다.
branch만들기 - git branch <브랜치명>
개발자가 개발하려는 기능과 관련이 있는 이름을 짓는 것이 좋습니다. (장바구니 개발 = git branch cart)
이렇게 치면 아무런 변화가 없습니다.
하지만 git branch만 치면
main 브랜치와 방금 만들었던 cart브랜치가 있는걸 볼수 있습니다.
초록색과 *모양이 있는 곳이 현재 내가 위치한 브랜치를 뜻하고
만들어 놓은 브랜치이지만 내가 위치하고 있지 않은 브랜치는 하얗게 나옵니다.
git switch <브랜치명> 또는 git checkout <브랜치명> - 브랜치 이동하기
이제 만들어 놓은 브랜치로가서 기능별로 작업을 해야합니다.
git switch와 git checkout은 둘다 브랜치로 이동하는 기능이 있습니다.
switch는 브랜치로 이동하는 기능밖에 없지만
checkout은 기능이 많고 이동한다는 이름이 명확하지 않아서 switch를 주로 사용합니다.
위처럼 Switched to branch 'cart' 문구가 나오는데 cart 브랜치로 변경되었다라는 말이면서
기존의 master(혹은 main) 브랜치에 있던 코드를 그대로 복사하여 새로운 곳에서 코드를 짤 수 있다는 뜻 이 됩니다.
git branch로 확인해보면
cart에 표시가 되있는걸 확인할수 있습니다.
git check out으로 해도 같은 결과 인걸 확인할 수가 있습니다.
이제 메인에서 아래와 같은 글을 저장하고 branch cart로 넘어가서 작업을 해보겠습니다.
git branch test2라는 글을 적고 저장을 한뒤 git add 명령어로 추가하고 main 으로 이동해보면
main에는 변경이 되지 않은걸 볼수 있습니다.
즉 브랜치를 생성해서 코드를 짜면 원본은 변경하지 않고 해당 브랜치에서만 변경한게 되는 것입니다.
브랜치 만들고 한번에 이동하기
git switch -c <브랜치명> : c는 create의 약자
git checkout -b <브랜치명> : b는 branch의 약자
git merge - 코드 합치기
cart브랜치에서 새로 작성을 했으니 원본코드에 합치면 됩니다.
1. 원본 브랜치로 이동합니다. - git switch <원본 브랜치>(main)
2. git merge <만든 브랜치> 를 입력해서 합칩니다.
※ 충돌이 발생한다면?
같은 파일의 같은 위치에 코드가 변경되었기 때문에 충돌이 발생
<<<<<HEAD - 지우기
========== - 지우기
>>>>>branch - 지우기
그 다음 git add . , git commit -m "", git push origin main 하면 됩니다.
※ switch로 브랜치끼리의 위치를 변경할 때엔 git add와 commit을 한후에 브랜치를 변경해야합니다.
pull request(PR)
pull안에 merge가 합쳐져있음 = 당겨서 합친다.
request = 요청하다.
즉, 합쳐도 되나요? 질문하는것.
merge 전에 코드리뷰를 하기위해서 사용합니다.
코드를 합치기 전 팀원 간 코드에 문제가 없는지 확인하고 서로의 코드에 대한 리뷰를 해줄 수 있습니다.
또한 충돌 여부 확인과, 테스트 자동화 등의 이점들이 있기에 pull request를 사용합니다.
pull request(PR)활용하기
0. 브랜치를 만들어서 코드를 수정하고 해당 메인브랜치가 아닌 해당 브랜치에서 작업한다.
1. git push origin <해당 브랜치명> ex) git push origin cart
add ., commit을 한뒤 git push 를 해준다.
git push origin 브랜치명 하면 main이 아니라 브랜치명으로 올라가고 깃허브가 인식하고 알려줍니다
위 사진의 버튼누르면 최종 브랜치와 컴페어쪽 만든 브랜치가 나타나있습니다.
Create pull request를 클릭해줍니다.
pull request생성 결과입니다.
이제 merge를 합니다.
Merge pull request를 누르고 Confirm merge를 해주면 merge가 완료 되었습니다.
이렇게 merge를 하고 git pull origin main을 하면 데이터가 합쳐진걸 볼수있다.
↓ 만약 위와 다르다면?
또는 브랜치로 올리면 아래처럼 파란글씨로 commits ahead of main 이렇게 뜹니다.
![](https://blog.kakaocdn.net/dn/BUFYy/btsDfn4yNM9/oHZ8kAYh7AXFNO7c0Q47o1/img.png)
여기서 create pull request를 눌러줍니다.
![](https://blog.kakaocdn.net/dn/cKkUf3/btsDfl6LynP/mzm40mwBorTTwc3rCugJwK/img.png)
마찬가지로 Create pull request를 눌러줍니다.
![](https://blog.kakaocdn.net/dn/SDyNC/btsDhLDNoPi/xZRLqLB66FtogCXZ8YyyIk/img.png)
Merge full request를 눌러준다
![](https://blog.kakaocdn.net/dn/u2Xz4/btsDd2Gw0c3/zpzTEgfyxB7oK1sHN0YBTk/img.png)
confirm merge를 누르면
![](https://blog.kakaocdn.net/dn/I4znz/btsDbdO8uHT/wp91dqmhZsk8PNQfkxLw51/img.png)
main 브랜치에 데이터가 들어간걸 확인할 수 있습니다.
![](https://blog.kakaocdn.net/dn/vQHeG/btsC88HweL4/PJUukJsxNaKvK9zx4k3Brk/img.png)
실전 가이드 깃
*. 개발용 브랜치 만들기
main - 배포용, 바로 서버로 들어갈 브랜치 입니다.
develop - 테스트용 : 메인으로 바로 배포하는것이아닌 develop브랜치로 합칩니다(기존의 main역할).
기능브랜치 - 기능개발용입니다.
이렇게 3부분으로 나누어 진행합니다.
* 여러 사람이 같이 작업을 하기 때문에 같은 변수명이 있을수 있고 같은 위치에 코드를 작성할 일이 생길수도 있습니다.
그렇기 때문에 합치기 전에 무조건 git pull origin dev를 한뒤에 로컬에서 테스트하고 dev에 합치는게 좋습니다.
또한 충돌나면 무조건 git pull origin 브랜치명으로 커밋 내용을 받은뒤에 다시 push 합니다.
1. 초기세팅
팀장 : 초기 코드 작성 및 깃허브 레포지토 업로드
폴더생성 초기코드 작성 깃레포지토리 생성 깃허브 오버로드
팀장할일
dev(debelop)브랜치 생성합니다
git switch -c dev
dev브랜치 위치에서 git push합니다.
git push origin dev(깃허브에 반영)
깃허브에서 dev브랜치를 default로 설정합니다.
1. settings 위치로 이동합니다.
2. default branch 체인지하는 화살표 누릅니다.
3. dev로 누르고 업데이트 누릅니다.( 풀 리퀘스트할떄 main으로 되있는거 dev로 하기작업 )
콜라보레이터로 협력자들 add people하기(팀원 초대)
그런뒤
팀원들은 git clone으로 프로젝트 내려 받은뒤
브랜치 만들어서 작업하고 위 과정을 반복하면 됩니다!
'Git & Github&배포' 카테고리의 다른 글
AWS EC2 배포하기 (0) | 2024.01.23 |
---|---|
git 파일 용량 에러 (0) | 2024.01.10 |
환경 변수 사용하기.. (0) | 2024.01.06 |
미니 프로젝트 배포하기[GitHub Pages](2) (0) | 2023.12.20 |
미니 프로젝트 배포하기[파이어 베이스(Firebase)](1) (1) | 2023.12.20 |