Forking WorkFlow
- 모든 프로젝트 참여자가 개인 로컬 저장소와 중앙 저장소를 fork한 개인 원격 저장소를 가지고 협업 진행하는 방식입니다.
- 개인 로컬 저장소에서 작업을 하고 개인 원격 저장소에 push해서 중앙 저장소에 PR(Pull Request)를 날리는 방식입니다.
- PR를 한 이후, 이것을 중앙 저장소에 Merge를 할 것인지, 그냥 Closed할 것인지 결정하는 것입니다.
과정
좀 더 자세히 WorkFlow를 설명할게요~
STEP1. 프로젝트를 진행할 중앙 저장소(Project Repo)를 Fork합니다.
중앙 저장소 페이지 오른쪽 위 상단에 아래와 같은 그림이 있을건데요. Fork를 클릭해서 개인 원격 저장소(내 레포)로 생성하면됩니다.
개인 원격 저장소를 생성하면 '내 아이디/프로젝트명'으로 Repo가 생성되는 것을 확인할 수 있습니다. 개인 원격 저장소에서 작업하는 것들은 중앙 원격 저장소와는 별개로 독립적으로 운영되기 때문에 파일을 어떻게든 수정해도 원격 저장소에는 영향을 미치지 않습니다.
STEP2. Git Clone으로 개인 원격 저장소에서 개인 로컬 저장소를 만듭니다.
이 과정은 딱 처음 1번만 해주면 됩니다.
개인 원격 저장소를 보면 초록색창으로 'Code'표시가 있습니다. HTTPS 주소를 복사한 후 gitbash 등을 통해서 다음과 같이 코드를 작성하면 정상적으로 개인 로컬 저장소에 저장됩니다.
$ git clone [개인 원격 주소 붙여넣기: shift+Insert]
헷갈리지 말아야 할 것은 가끔 개인 원격 저장소에서 하지 않고 중앙 원격 저장소에서 clone하는 경우가 있더라구요. 중앙 원격 저장소를 clone하고 작업을 수행하고 push하면 중앙 원격 저장소에 영향을 미치게 되겠죠?
STEP3. 개인 로컬 저장소(개인 원격 저장소)를 중앙 원격 저장소와 연결하기
이 과정도 처음에 딱 한번만 하면 됩니다. 깃허브 저장소에 push 또는 pull할 때 매번 url를 작성하기 번거롭기 때문에 해줍니다.
$ git remote add upstream [중앙 원격 저장소 URL]
보통 중앙 원격 저장소는 upstream이라는 이름으로 해주는데 다른 이름으로 해도 됩니다. (근데 upstream이 안헷갈리고 좋은 것같아요..다들 그렇게 하니까...)
STEP4. 작업 수행 후, add / commit / push / PR 하면 됩니다.
원하는 작업을 수행한 후, 변경하고 추가한 모든 파일을 추가(add)하고 커밋합니다.(commit)
그리고 push를 하면 되는데, 중앙 원격 저장소에 push하는 것이 아니라 개인 원격 저장소에 push해야 합니다.
마지막으로 깃페이지에서 Pull Request를 통해 중앙 원격 저장소에 PR를 날립니다.
$ git add .
$ git commit -m "Change"
$ git push origin [branch name] # git push origin main
STEP5. 모든 프로젝트 참여자와 상의하여 중앙원격저장소에 반영할지 안할지 결정합니다.
PR를 하면 다음과 같은 화면을 확인할 수 있습니다. 만약에 Merge를 하면 중앙 원격 저장소 파일에 내용을 반영하게 됩니다. 하지만 그냥 close pull request를 하면 반영되지 않습니다.
'Data Engineering' 카테고리의 다른 글
[Github] .gitignore / .idea 등 잘못 업로드한 파일 삭제하기 (0) | 2021.04.15 |
---|---|
API와 REST API (1) | 2021.03.26 |
HTTP란? (0) | 2021.03.25 |
Tweepy란? (0) | 2021.03.24 |
Docker란? (0) | 2021.03.18 |
댓글