본문 바로가기

T.I.L

23-06-27 T.I.L github fork

문제설명

지금까지 협업할 때마다 나는 git clone으로 뼈대 프로그램을 받아오고 git branch 등으로 각자의 브랜치에 작업을 하고 main에 merge하는 방식을 했다.
하지만 이 방식은 main 데이터에 어떤 변경점이 있다면 git pull을 다시 받아와야했고 다른 팀원이 잘못merge해서 다시 
되돌리던 적도 있었다. 
그리고 충돌이 일어나는 경우도 많았다. 
하지만 git fork를 사용하면 구지 main이 변경됐다는 얘기가 없더라도 깃허브 사이트에서 알림이 오고 최신화 버튼만 누르면 자동으로 main이 최신화된다. 

시도

뼈대가 되는 main 레포지토리에 가서 우측 상단의 fork를 누른다.

그 다음에 레포지토리의 이름을 정하는 창이 나오는데 그 창을 누르면 main의 요소가 그대로 복사가 되는 레포지토리 하나가 만들어진다.

해결

여기서 중요한 점은 후에 git clone과 git remote로 로컬저장소와 원격저장소를 연결해야 하며

main의 브랜치에서 작업을 하면 안된다. 왜냐하면 main의 브랜치에서 작업을 하면 후에 뼈대가 되는 레포지토리의 main이 commit이 되서 자동으로 싱크를 맞출 때 충돌이 일어나기 때문이다.

특정 작업을 완료해서 pullrequeste를 할 때 먼저 레포지토리의 싱크를 최신화 한 다음에 main에 pull하고 pull한 main에

자신의 작업물을 push하고 그 main을 pullrequeste를 요청하면 된다. 

알게된 점

gihub의 fork는 협업해서 merge를 할 때 충돌을 최소화 할 수 있는 좋은 기능이라는 것을 알았다.

fork한 결과물에서 작업을 할 때는 main이 아니라 다른 브랜치에서 작업을 해야한다. 왜냐하면 언제 뼈대의 main이 commit될지 모르기 때문에 충돌을 최소화 하기 위해서다.

fork를 사용하면 git pull을 최소화 할 수 있다.