협업시 git 관리

Kimu·2021년 11월 6일
0

드디어 팀프로젝트...
익숙치 않은 리액트 네이티브...
더욱 더 낯선 git 관리...

정말 하루하루 생각한다. 내가 과연 이것을 할 수 있을까? 못하면 어떻게 될까?
내가 모르는 것을 누군가는 알고있다. 구글신과 내 동료들. 나는 못하지만 그들은 가능하다는 믿음을 갖고, 먹을 것을 나눠주며 서로에게 배우다보면, 할 수 있을 거다.

협업시 깃관리, 일단 이것은 더 이상 메인에 푸시하면 안된다는 뜻이다.

유명하다는 이 그림을 보자. 팀의 깃관리.. 그렇다.
우리는 깃을 관리할 것이다. 그 말은 깃의 브랜치를 관리한다는 뜻이다. 이제 우리는 브랜치를 마구 만들면서 작업할 거다.

첫째, 팀프로젝트의 마스터 계정인 코팅마스터 계정을 포크해서 주소를 복사하여 내 노트북의 에서 적당한 양지바른 곳에서 git clone 하여 깃 파일을 생성해준다.

둘째, 내 로컬에서 작업할 때는 작업하기 전 마스터의 깃으로 가서 웹에서 이슈를 생성해준다. 이슈를 생성하면 넘버가 #_ 나오는데 이때 # 뒤에 생성된 숫자를 사용한다.

셋째, 내가 클론받은 작업파일의 vsc를 열어서 그 터미날에서 git checkout -b feature-issue-#_ (아까 나온 숫자)를 써준다. 이 명령어는 브랜치를 생성하면서 이동해준다. 내 로컬에서도 브랜치를 만들어 그 안에서 작업해준다는 것을 잊지마라.

넷째, 이 파일안에서 git add . 및 commit 하고, git push origin feature-issue-#_ 한다. (remote의 develop 브랜치에 푸시한다는 뜻이다)

다섯째, 웹상의 내 깃 레파지토리에 가서 아까 포크해온 레파지토리로 들어가 방금 커밋한 것을 pr을 날리는데, 주의할 점은 브랜치명을 수정해줘야 한다는 것이다.

빨간 사각형을 주의해서 내가 pr을 날릴 레파지토리의 브랜치와 내 로컬의 작업한 깃 브랜치명을 제대로 설정하는 것을 잊지말자.

여섯째, 이렇게 되면 작업자로서의 할 일은 다했고, 이제 팀장님의 계정으로 깃에 들어가 내가 올린 내용을 보고 merge할 건지 리젝트할 건지 결정한다.

일곱째, 팀장님이 merge해주시면 develop의 코드와 병합된다. 그러면 이제 다른 팀원들도 내가 쓴 코드를 공유해야한다. 다른 팀원들은 pull받을 것이다. 어떻게?
여기서 upstream 이 나타난다. 우리는 각자의 터미널에서 git add upstream 깃주소 (팀장님의 깃주소)한다. 이렇게하면 origin 말고 upstream이라는 원격저장소가 생긴다. git remote -v 하면 origin 2개, upstream 2개 해서 총 네 개가 보일 것이다. 이제 따라한다. 앞으로 굉장히 중요한 구호가 될 것이다.
"push는 origin에서 pull은 upstream에서!"
git pull upstream develop
pull 받을 때는 내 깃에서 main으로 이동하여 main 폴더안에서 받도록한다.

에러날 때 관리법 몇 가지.
1. pr 날릴 때 충돌 날 경우:
conflict solve 라는 버튼이 뜸, 이 버튼을 누르면 웹 에디터가 어디서 충돌이 나는지 알려주고 무엇을 남겨놓을 것인지 편집한 뒤에 mark as sloved라는 버튼을 누르면 merge request라는 버튼이 뜰 것임 이것을 클릭해서 pr을 마저 날리면 됨

  1. origin은 내가 포크해서 받아온 내 깃 리모트 주소이어야하고,
    upstream은 팀장님의 프로젝트 깃주소여야 함. 이게 다르면 pr날릴 때 오류남. 주의!

  2. 깃박사님 민지님의 깃 명령어 팁 공유

git remote -v : 내가 등록한 git 주소 확인 (oigin & upstream)
git branch : 내가 현재 위치해 있는 git branch 확인
git checkout -b 브팬치명 : 새로 브랜치 만들고 그쪽으로 접속
git branch -D 브랜치명 : 해당 브랜치 삭제 (단, 내가 그 브랜치에 접속해 있으면 안되고, commit 해야 될것도 없어야 함)
profile
지속가능한 개발자

0개의 댓글