협업(2) 로컬도 변했는데 원격도 변한 경우

Hyun·2021년 10월 20일
0

깃 & 깃허브

목록 보기
7/7

로컬도 변했는데 원격도 변한 경우

단계
1. 협업 대상 repository fork 하기
2. fork 해온 곳(내 레퍼지토리)를 내 로컬 저장소로 clone 하기
3. 새 branch 를 만들고 그곳에서 작성하고자 하는 코드 작성
4. 코드 작업을 수행한 후, 현재 branch 에서 fork 해온 곳으로 push
5. fork 해온 곳에서 pull request 날리기
6. pull request 를 받은 원격저장소의 주인이 pull request 를 받아줄지 선택
7. pull request 를 날린 후, 사용한 branch 지우기

실습

협업이 진행되고 있는 원격 저장소에서 fork 한다.

내 계정에 fork 된 원격 저장소가 생긴 것을 볼 수 있다.

내 로컬 저장소에 폴더를 생성한 다음, fork 된 원격 저장소를 해당 폴더로 clone 해온다.

로컬 저장소에 newbranch 라는 새 브런치를 생성한 다음, 그 브랜치에서 코드를 작성(commit) 한다. <p>anther person is here!</p> 를 추가해주었다.
(단축 명령어 git checkout -b <브랜치명>: 브랜치를 만듦과 동시에 이동한다.)

이후 해당 브랜치에서 fork 된 원격 저장소로 push 해준다. (clone 했기 때문에 origin 은 자동으로 등록되어있다.)
fork 된 원격저장소에 Compare & pull request 알림으로 새로운 push 가 이뤄진 것을 볼 수 있다.

초록 버튼을 클릭하면 fork 해온 원격 저장소로 pull request 를 보낼 수 있다.
(fork 된 원격 저장소의 newbranch 브랜치의 내용이 fork 해온 원격 저장소의 main 브랜치로 pull request 되는 것을 볼 수 있다.)

pull requset 를 보내기전 내가 push 한 코드를 볼 수 있다.

pull request 를 날리면 fork 해온 원격 저장소에 pull request 가 도착한 것을 볼 수 있다.

pull request 의 내용 또한 볼 수 있다.

fork 해온 원격 저장소의 주인이 해당 pull request 를 pull(merge) 할지 선택할 수 있다.

나중에 fork 해온 원격 저장소의 주인분께서 pull(merge) 를 승인해주셨다!!.

fork 해온 원격 저장소로 pull(merge) 가 완료되었다면 브랜치 관리를 위해서 작업한 브랜치는 삭제하는 것이 좋다.

  • git branch -d <삭제할 브랜치명>: 해당 브랜치를 삭제한다.

+ 협업하는 원격 저장소에 다시 pull request 를 날릴 때

  1. fork 해온 원격 저장소(협업하는 원격 저장소)를 내 로컬 저장소에 다시 pull 하고, 다시 새 브랜치를 만든 다음 그 브랜치로 이동하여 코드를 작성(commit)한 뒤 push 하고, fork 된 원격 저장소에서 push 를 받으면 다시 pull request 를 날리면 된다.

  2. fork 된 원격 저장소에서 fetch and merge 를 하면 원본 repository 와 같아진다. 이후 fork 된 원격 저장소를 내 로컬 저장소에 다시 pull 하고, 다시 새 브랜치를 만든 다음 그 브랜치로 이동하여 코드를 작성(commit)한 뒤 push 하고, fork 된 원격 저장소에서 push 를 받으면 다시 pull request 를 날리면 된다.

추가로 코드를 작성하여 pull request 를 날릴 때 변경된(최신의) fork 해온 원격 저장소를 내 로컬 저장소에 반영하지 않는다면 처음에 fork 된 원격 저장소만을 기반으로 코드를 작성하기 때문에 이후에 변경된 코드 내용을 알 수 없다.

+ commit 까지 한 상황에서 organization/repository 가 바뀌었을 때

현재 브랜치에서 fork 해온 원격 저장소(협업하는 원격 저장소)를 다시 내 로컬 저장소에 pull 하고 충돌을 해결한 후, 다시 코드를 작성(commit) 하고 나의 계정/repository 에 push 하면 된다.

profile
better than yesterday

0개의 댓글