[Git] 원본저장소를 복사해서 원격저장소를 생성 (fork)
2022. 4. 20. 11:23ㆍGit
1. 평행세계를 만드는 브랜치(branch), 평행우주를 만드는 포크(fork)
- 기본적으로 원본저장소에 커밋을 직접 푸시할 수 있는 사람은 본인(소유자)뿐입니다
- 다른 사람이 원본저장소에 커밋을 푸시하려면 협력자(Collaborator)로 등록해야함
- Settings - Collaborators - Add collaborator
포크(fork)의 필요성
- 원본 저장소에서 협력자(Collabrator)가 늘어날수록 원본저장소를 관리하기 어려워짐
- 관리가 어려워지는 이유는 협력자가 원본 저장소에 직접 푸시할 수 있기 때문
- 늘어나는 협력자로 인한 관리의 부담과 오픈소스의 개선의 딜레마 발생
포크(fork)
- 개발자는 원본저장소를 자신의 계정에 복사(fork)해서 원격저장소를 생성
- 복사한 원격저장소에 커밋을 올린 후 원본저장소의 소유자에게 병향 요청을 하면 검토후 반영
- 원격 저장소 내의 브랜치간의 풀 리퀘스트 과정과 동일함
브랜치와 포크의 차이
- 브랜치는 한 원격 저장소내의 다른 커밋을 가리키는 포인터
- 포크는 원격 저장소의 브랜치와 커밋 이력들을 전부 복사해서 독립적인 원격저장소를 생성하는 것
의의 | 편리한점 | 불편한점 | |
브랜치 | 하나의 원본저장소에서 분기를 나눔 | 하나의 원본저장소에서 코드 커밋 이력을 편하게 볼 수 있음 | 다수의 사용자가 다수의 브랜치를 생성하면 관리하기 힘들어짐 |
포크 | 여러 원격저장소를 만들어 분기를 나눔 | 원본저장소에 영향을 미치지 않으므로 원격저장소에서 마음껏 코드를 수정할 수 있음 | 원본저장소의 이력을 보려면 따로 주소를 추가해야함 |
2. 남의 저장소를 내 계정에 통째로 복사하기(Fork)
2.1 GitHub의 다른 계정을 생성
2.2 Fork하고자 하는 원본저장소(저의 경우 git_study repository) 방문
2.3 [Fork] 버튼 클릭하여 원본저장소를 복사
2.4 소스트리를 실행하여 yonghwankim2의 원격저장소를 받아옴
New Tab -> Clone -> 저장소 URL 입력 -> 저장위치 경로 입력 -> 클론 버튼 클릭
현재 단계까지의 수행은 원본저장소의 GitHub 계정으로 소스트리에서 받아온 것이기 때문에 Fork한 원격저장소에 푸시를 하면 에러가 발생합니다. 따라서 소스트리에서 yonghwankim2 계정을 추가해야합니다.
2.5 소스트리 도구->옵션->인증->추가-> Host, Credentials 정보 입력-> 비밀번호 새로고침 클릭
호스팅 서비스 : GitHub
선호 프로토콜 : HTTPS
인증 : OAuth, OAuth는 웹 브라우저를 띄워서 로그인하는 방식, Basic은 GitHub 닉네임과 암호를 입력해서 로그인하는 방식
추후 소스트리에서 yonghwankim-dev2@github.com 계정을 사용하고 싶다면 설정 초기화를 클릭하고 소스트리에 재접속합니다.
2.6 iTshirt-raccoon/like.md 생성 및 작성
2.7 소스트리의 부계정인지 확인후 커밋 및 푸시
2.8 부계정의 원격저장소에 커밋 이력 확인
References
source code : https://github.com/yonghwankim-dev/git_study
https://github.com/yonghwankim-dev2/git_study
팀 개발을 위한 Git Github 시작하기, 정호영 진유림 저
'Git' 카테고리의 다른 글
[Git] 묵은 커밋을 새 커밋으로 이력 조작하기(rebase) (0) | 2022.04.20 |
---|---|
[Git] Fork한 원격저장소에서 원본저장소에 풀 리퀘스트 보내기 (0) | 2022.04.20 |
[Git] 개발이 완료되었습니다. 출시하자! : 릴리즈(Release) (0) | 2022.04.19 |
[Git] 브랜치를 합치는 예의바른 방법 : 풀 리퀘스트(Pull Request) (0) | 2022.04.19 |
[Git] 충돌(conflict) 해결하기 (0) | 2022.04.19 |