우선 팀의 책임자가 Organizations을 생성한다.
팀원을 초대한 이후, new Organizations을 클릭하면 기존 우리가 사용하던 것 처럼 리포지토리를 만드는 창이 뜨는데 여기서 프로젝트 이름이나 ReadMe같은 선택을 할 수 있다. 여기서 public으로 생성하지 않으면 팀원의 잔디가 심어지지 않는다고 하니, 우리 같이 공부하는 학생들이라면 이 부분 주의해서 생성하길 바란다.
또 리포지토리에서 팀원을 다 초대해준다.

팀원의 권한에 따라서 맞는 권한을 부여하면 되는데 우리는 모두가 코딩을 하기 때문에 팀장인 내가 (깃 생성한 본인)이 자동으로 Admin이고 나는 나머지 팀원은 전부 write 권한으로 돌렸다.
만약 공동 책임자가 있다거나 하면 Maintain (리포지토리 관리)이나 Admin을 부여해줘서 깃을 같이 관리하면 된다.
프로젝트에 기존하던 것 처럼 Organizations 깃을 연결이후 master 푸쉬까지 해준다.
이제 깃 관리 전략이 무엇인가하면,
우선 만약 지금 사용중인 브랜치가 메인 브랜치라면 이렇게 바꿔주고.
git checkout main
git branch -m master
git push origin master

푸쉬한다면 이런식으로 화면이 바뀌어 있을 것이다. 여기서 세팅으로 들어가준다.
세팅 탭에서 브랜치로 ㄱㄱ
Branch protection rules에서 add branch ruleset 클릭


그럼 이 설정창에서 룰의 이름을 정하고, Active(활성화)시켜준다. Targets에서 디폴트로 주면 디폴트가 master니까 그걸로 설정된다.
그 다음으로는 룰 설정을 하면 된다.

난 일단 이렇게 설정을 했다.
여기 내가 작성한 3번 탭이 또 세분화 되어있어서 이해가 쉽게 예를 들어 설명을 하자면.
왜 필요해?: 한 사람만 작업한 코드를 그대로 병합하면 실수가 발견되지 않을 수 있어. 그래서 팀의 다른 사람이 코드를 확인한 후 승인해야 병합할 수 있도록 하는 규칙이야.
쉽게 말하면: 내가 코드를 작성한 후 PR을 보내면, 팀원 중 최소 1명이 "이 코드 괜찮다!"라고 승인해야 master 브랜치에 들어갈 수 있어.
왜 필요해?: 만약 코드 리뷰 후 새로운 변경 사항이 추가되면, 새로운 코드도 다시 리뷰가 필요할 수 있어. 그걸 반영한 설정이야.
쉽게 말하면: 내가 PR을 보냈는데 리뷰어가 승인을 해줬어. 그런데 추가로 코드를 수정해서 푸시했으면, 리뷰어는 새로 추가된 코드도 다시 확인해야 해.
왜 필요해?: PR을 리뷰하다 보면, 여러 번의 수정이 있을 수 있어. 이 설정은 최종 수정된 코드가 꼭 리뷰를 통과하도록 보장해.
쉽게 말하면: 내가 여러 번 코드를 수정해서 푸시했으면, 마지막에 수정한 코드도 리뷰어가 "확인 완료!" 해줘야 master에 병합할 수 있어.
왜 필요해?: 리뷰어가 코드에 대해 의견을 남겼을 때, 그 의견을 충분히 반영하거나 답변한 후에만 코드가 병합되도록 하는 규칙이야.
쉽게 말하면: 리뷰어가 "이 부분은 왜 이렇게 했어?" 같은 질문을 남기면, 대답하거나 수정해서 문제가 해결된 후에만 병합이 가능해.
솔직히 나도 잘 이해가 안되서 일단 다 체크는 했다. 사용법은 나중에 익히면 되겠지.
암튼 이렇게 룰을 생성.
이후 룰 확인을 해봤는데

default 가 지금 main으로 되어있는 것 발견. 난 main 쓰기 싫으니까 이걸 이제 고쳐보자.
이렇게 하면 기본 브랜치가 master로 변경됨!


바꿔주고. rule도 다시하면 확인해보자.

됐구만.
우리는 main은 아예 사용하지 않을거라. main은 아예 지워버리자.

이제 메인은 존재하지 않는 브랜치.
master의 설정은 끝났다. 이제는 develop 생성,
로컬에서 develop 브랜치를 생성하고 원격 저장소에 푸시
git checkout master # master에서 브랜치 생성
git checkout -b develop # develop 브랜치 생성
git push origin develop # 원격 저장소에 develop 브랜치 푸시
이제는 테스트는 develop에서 하게 된다!!
원래는 feature에서 기능을 각각 업로드 하는 것 같은데 그럼 브랜치가 너무 많아져서 헷갈릴 것 같으니 팀원의 각자 이니셜로 각자 분담한 내용을 기억하면 된다. (소규모라 가능할듯.)
그래서 feature는 총 네개.
일단 팀장인 나. 한영신
팀원 1 2 3, 최은서 박태은 조혜령.
각각의 feature는
git checkout develop # 먼저 develop 브랜치로 이동
git checkout -b feature-이니셜 # 이니셜로 브랜치 생성
이렇게 생성하면 된다.
나로 예를 들면
git checkout develop # 먼저 develop 브랜치로 이동
git checkout -b feature-hys # 이니셜로 브랜치 생성
가 된다.

푸쉬까지 완료.

이렇게 보이는데 아마 다른 팀원이 보면 your branches에는 아무것도 없을 걸로 예상된다. (두명이 해외로 떠나서 확인할 방도가 없다 ㅠㅠ)
일단 이렇게 했고. 주의 사항을 정리해서 올리자면.
feature-이니셜 (예: feature-hrj, feature-ces)새로운 작업을 시작할 때:
git checkout develop
git pull origin develop
git checkout -b feature-이니셜
git add .
git commit -m "작업 내용 작성"
git push origin feature-이니셜
GitHub에서 Pull Request(PR) 생성:
develop 브랜치작업 도중 다른 팀원이 develop에 병합한 경우:
git checkout develop
git pull origin develop
git checkout feature-이니셜
git merge develop
git add .
git commit -m "충돌 해결"
git push origin feature-이니셜