이롭게 현명하게
[Git] 저장소 복제하기 / 포크(fork) 본문
목차
포크(fork) 과정
브랜치 vs 포크
포크 깃 명령어 및 소스트리
[ 포크(fork) 과정]
개발자 A와 개발자 B가 만든 mygit 오픈소스가 많은 관심을 받게 되었습니다.
이때 개발자 C가 mygit 프로젝트에 참여하여 기여를 하고 싶어 한다.
하지만 이 프로젝트에 참여를 하기 위해서는 저장소의 push 권한이 있어야 한다.
push의 권한은 개발자 A와 B만 가지고 있다.
음... 이 push 권한을 어떻게 받아야 할까...
아! 원격 저장소 setting에 있는 컬래버레이터에 등록을 하면 되는구나!
타닥.. 타닥..
키야 난 역시 넘모 똑똒하다니깐!
...오옹..?
...? 개발자 C..? 얜 뭔데 권한을 달라는 거지?
응~ 안돼~ 돌아가~~
히히 이제 한번 해보실까
읭...?
왜 권한 승인을 안 해주지..?
이럴 때 사용하는 것이 fork 기능입니다.
개발자 A와 개발자 B의 mygit 저장소를 통째로 개발자 C의 계정에 복제해서
개발자 C가 자유롭게 커밋, 푸시를 가능하게 하고 개발자 C의 브랜치와 개발자 A, B 가 사용하는 mygit 저장소의 브랜치에 Merge 요청을 한다.
fork의 장점은 개발자 C가 push를 망치거나 이상한 commit을 하더라도 원본 저장소(mygit)의 코드에는 영향이 없어 자유롭게 commit, push가 가능하다.
![]() |
개발자 A의 mygit 저장소주소이다. devA브랜치와 master브랜치가있다. |
![]() |
개발자 C가 fork를 한다. |
![]() |
개발자 C의 깃헙아이디의 주소가 나온다. 개발자 C의 새로운 mygit 주소가 된다. fork를 한 시점에서 모든 브랜치들이 복사가 된다. *개발자 C가 새 커밋과 푸시가 가능합니다. *이때 커밋과 푸쉬는 개발자A의 원격저장소가 아닌 개발자C의 원격 저장소에서 진행됩니다. |
[ 브랜치(branch vs 포크(fork) ]
브랜치와 포크는 모두 코드를 협업하기 위해 분기점을 나누는 방식이지만 특성이 다르므로 프로젝트에 맞게 사용해야한다.
브랜치 | 포크 | |
정의 | 하나의 원본 저장소에서 분기를 나눈다. | 여러 원격 저장소를 만들어 분기를 나눈다. |
편리한 점 | 하나의 원본 저장소에서 코드 커밋 이력을 편하게 볼 수 있다. | 원본 저장소에 영향을 미치지 않으므로 마음껏 코드를 수정할 수 있다. |
불편한 점 | 다수의 사용자가 다수의 브랜치를 만들면 관리하기 힘들다. | 원본 저장소의 이력을 보려면 따로 주소를 추가해줘야한다. |
[포크(fork) 깃 명령어]
1. 원하는 프로젝트/코드가 있는 원격 저장소
2.저장소를 포크
3. 포크한 저장소를 클론
4. 소스트리에서 계정 추가
5. 코딩 후 commit, push
6. 깃허브에서 commit 확인
1. 원하는 프로젝트의 원격 저장소에 접속합니다.
오른쪽 상단에 있는 Fork버튼을 클릭한다.
2. Create fork 클릭
3. 내 저장소에 리포지터가 생성된걸 확인할 수 있다.
1) 내 저장소에 리포지터가 생성
2) fork한 대상
4. Code를 클릭하여 HTTPS에서 url을 복사한다.
[Git] 초보자를 위한 깃허브 사용법 / 깃허브 연결하기
목차 로컬 저장소와 원격 저장소 깃허브에 원격 저장소 만들기 로컬 저장소와 원격 저장소 연결 [ 깃헙에 코드를 올리는 과정 ] 1. 내 컴퓨터에 프로젝트 폴더에 ‘ 여기 깃을 쓸 거다! ' 명령한다
devyihyun.tistory.com
5. 소스트리에서 + 버튼을 클릭
6. clone 클릭
7. 복사했던 url을 붙여넣기 넣고 탐색을 클릭하여 로컬 저장소 생성 후 클론 버튼 클릭
8. 지금까지의 커밋 기록들을 볼 수 있다.
[Git] Collaborator 추가하기
1. 원하는 프로젝트의 원격 저장소에 접속합니다. 오른쪽 상단에 있는 Fork버튼을 클릭한다. 2. Create fork 클릭 3. 내 저장소에 리포지터가 생성된 걸 확인할 수 있다. 1) 내 저장소에 리포지터가 생
devyihyun.tistory.com
잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊
댓글과 좋아요는 큰 힘이 됩니다!

'Git' 카테고리의 다른 글
[Git] Collaborator 추가하기 (0) | 2022.12.27 |
---|---|
[Git] 소스트리 사용법 3 (계정 추가) (0) | 2022.12.26 |
[Git] 깃 합치다 충돌났을 때 / 컨플릭트 (conflict) (2) | 2022.12.22 |
[Git] 소스트리 사용법 2 (feat. merge) - 코드 합치기 (0) | 2022.12.21 |
[Git] 소스트리 사용법 1 (feat. branch) (0) | 2022.12.20 |