이롭게 현명하게

[Git] 저장소 복제하기 / 포크(fork) 본문

Git

[Git] 저장소 복제하기 / 포크(fork)

dev_y.h 2022. 12. 23. 18:06
728x90
반응형

※ 본 포스팅은 윈도우11 환경에서 패스트 캠퍼스 강의를 수강하며 정리한 내용입니다.


목차

포크(fork) 과정

브랜치 vs 포크

포크 깃 명령어 및 소스트리


 


[ 포크(fork) 과정]

 

개발자 A와 개발자 B가 만든 mygit 오픈소스가 많은 관심을 받게 되었습니다.

이때 개발자 C가 mygit 프로젝트에 참여하여 기여를 하고 싶어 한다.

원격 저장소 mygit

하지만 이 프로젝트에 참여를 하기 위해서는 저장소의 push 권한이 있어야 한다.

push의 권한은 개발자 A와 B만 가지고 있다.

 

음... 이 push 권한을 어떻게 받아야 할까...

개발자 C

 

 

아! 원격 저장소 setting에 있는 컬래버레이터에 등록을 하면 되는구나!

개발자 C

 

 

타닥.. 타닥..

개발자 C

 

 

키야 난 역시 넘모 똑똒하다니깐!

개발자 C

 

 


 

 

 

 

...오옹..?

개발자 A

 

 

 

...? 개발자 C..? 얜 뭔데 권한을 달라는 거지?

개발자 A

 

 

응~ 안돼~ 돌아가~~

개발자 A

 

 

 

 


 

히히 이제 한번 해보실까

개발자 C

 


 

읭...?

개발자 C

 

 

왜 권한 승인을 안 해주지..?

개발자 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을 복사한다.

 

소스트리가 아닌 CLI에서 실행을 원할 경우

 

[Git] 초보자를 위한 깃허브 사용법 / 깃허브 연결하기

목차 로컬 저장소와 원격 저장소 깃허브에 원격 저장소 만들기 로컬 저장소와 원격 저장소 연결 [ 깃헙에 코드를 올리는 과정 ] 1. 내 컴퓨터에 프로젝트 폴더에 ‘ 여기 깃을 쓸 거다! ' 명령한다

devyihyun.tistory.com

 

 

5. 소스트리에서 + 버튼을 클릭

 

6. clone 클릭

 

7. 복사했던 url을 붙여넣기 넣고 탐색을 클릭하여 로컬 저장소 생성 후 클론 버튼 클릭

 

 

8. 지금까지의 커밋 기록들을 볼 수 있다.

 

 

 

[Git] Collaborator 추가하기

1. 원하는 프로젝트의 원격 저장소에 접속합니다. 오른쪽 상단에 있는 Fork버튼을 클릭한다. 2. Create fork 클릭 3. 내 저장소에 리포지터가 생성된 걸 확인할 수 있다. 1) 내 저장소에 리포지터가 생

devyihyun.tistory.com


잘못된 정보는 댓글에 남겨주시면 감사하겠습니다!😊

댓글과 좋아요는 큰 힘이 됩니다!

728x90
반응형
Comments