협업을 하면서 Fork/Pr은 필수이다.여기서 이게 뭔지 장황하게 설명은 하지 않겠다.
다른 블로그들도 참고를 많이 했지만 가능하면 최대한 쉽고 간결하게 설명할 예정이다.
=> 간단하게 소스코드를 공유하는 공간에 테스트,검증이 확실시 된 코드들만 반영 하는 방법이다.
fork는 뭔지 pr은 뭔지, origin?? upstream??? 헷갈리는 내용이 많기때문에 그림을 그려가며 설명할 예정이다.
크게 세가지로 기억하자!
- MainRepository(upstream) = 위에서 언급한 메인소스코드 공간
- ForkedRepository(origin) = MainRepo를 복사해 나의 공간에 저장함
- Local = 내 pc, 즉 여기서 코드를 우리가 조작할수 있다.
- git init
- git clone (Forked repo 주소)
->첫번째 명령어는 repository의 연결상태를 확인하는 것
-> 처음은 당연히 ForkedRepo 를 Local 에 clone 했으니 ForkedRepo/Local 뿐
-> 맨 왼쪽 origin/upstream 이 repository들의 별칭이다.
-> 이름을 정할수 있지만 보통은 ForekdRepo(origin)/ MainRepo(upstream) 이다.
- git remote -v
- git remote add (repo별칭) (MainRepo 주소)
- git branch (새로운 branch 이름)
- git branch (로컬 브랜치 목록 조회)
- git branch -r (원격 브랜치 목록 조회)
- git branch -a (모든 브랜치 목록 조회)
7.우리가 만든 새로운 Banch로 옮겨보자
- git checkout (새로만든 branch 이름)
- git add .
- git commit -m "수정,변경내용"
- git push (ForekdRepo 별칭) (새로만든 branch)
우리가 수정한 코드들을 바로 MainRepo에 반영하면 각종 예상치 못한 오류들이 발생할수도 있고 기존에 정상적인 데이터들도 같이 사라질수 있다.
그러니 우리는 그것을 똑같이 복사한 ForkedRepo에 먼저 반영을 해보고 이상이 없다면 MainRepo에 반영을 하는 순서를 가져보자
새로운 branch 에서 작성을 하고 ForkedRepo에도 반영해서 이상이 없다면 MainRepo에 적용을 시켜보자
말그대로 Main이다. 휴가 가기전 승인을 받는것처럼 MainRepo 에 변경사항을 반영할때는 보고서(PullRequest)를 작성하고 사장의 승인(merge) 가 필요하다.
MainRepo 의 최신 커밋내용을 가져오기만 한다.(merge x)
- git fetch upstream
main branch 로 바꾸기
- git checkout main
Branch 에 병합
- git merge upstream/master
master branch 에 병합된 내용을 ForedRepo 에 반영
- git push origin master