🌱 오늘의 주제 : git의 working flow
🌱 git의 working flow
🌱 fork, clone 차이
fork
fork는 다른 사람의 Github repository에서 내가 어떤 부분을 수정하거나 추가 기능을 넣고 싶을 때 해당 respository를 내 Github repository로 그대로 복제하는 기능이다. fork한 저장소는 원본(다른 사람의 github repository)와 연결되어 있다. 여기서 연결 되어 있다는 의미는 original repository에 어떤 변화가 생기면(새로운 commit) 이는 그대로 forked된 repository로 반영할 수 있다. 이 때 fetch나 rebase의 과정이 필요하다.
그 후 original repository에 변경 사항을 적용하고 싶으면 해당 저장소에 pull request를 해야한다. pull request가 original repository의 관리자로 부터 승인 되었으면 내가 만든 코드가 commit, merge되어 original 에 반영된다. pull request 하기 전까지는 내 github에 있는 forked repository에만 change가 적용된다.
즉 Repository에 권한이 없는 사용자가 저장소를 fork하고 fork한 자신의 저장소에 변경 사항을 적용한 후 Push한다. 이 후 원래 저장소(original repository)에 내 저장소에 있는 브랜치를 Pull Request 한다. 내가 만든 코드가 승인되면 해당 저장소에 Merge 된다.
clone
clone은 특정 repository를 내 local machine에 복사하여 새로운 저장소를 만든다. clone한 원본 repository를 remote 저장소 origin으로 가지고 있다. 권한이 없는 경우 해당 저장소로 push 하지 못한다.
또한 기존의 제일 처음 original repository와 연결되지 못한다. 즉 저장소의 commit, 등의 로그를 보지 못함
소규모 팀에서 활용 가능한 예
나(imacoolgirlyo)와 칭구(chingu)가 팀 프로젝트를 진행하기 위해서 github에 새로운 repository를 하나 만들었다. 각자 자신의 컴퓨터에 해당 저장소를 clone하여 작업한다. 변경 사항들을 commit 하고 chingu가 먼저 github remote 저장소에 push를 했다.
그 후 내가 push를 시도하지만 하지 못하게된다.
칭구가 먼저 push 후 origin/master에 변경 사항을 적용하였기 때문에 해당 변경 사항을 내 로컬에서도 적용하기 위해서 칭구가 수정한 커밋을 Fetch하고 Merge 해야한다.
'Git' 카테고리의 다른 글
Git - 명령어 정리 (0) | 2023.10.19 |
---|---|
Git - gitignore 규칙 (0) | 2023.08.25 |
Github - label 의미 (2) | 2023.05.06 |
Git - Issue 할당 (0) | 2022.11.14 |
Git - 원격 repo 사용하기 (0) | 2022.11.13 |