다른 테스트 계정으로 테스트 레포지토리를 만들어서 과정을 이해해 볼 것을 추천한다.
1. Fork
① olimolim 이라는 깃헙 닉넴을 가진 사람의 testrepository에 들어가서 fork를 한다.
(= 보통 이 행위를 'fork를 뜨다' 라고 표현한다.)

② 내 레포지트리(vegatality / testrepository) 를 확인해보면 fork한 레포지토리가 만들어진 것을 볼 수 있다.

③ 두 레포지토리를 활용하여 내 로컬 레포지토리로 연결을 할 것이다.
먼저, 피fork 대상인 olimolim / testrepository 의 깃헙 주소를 복사해 놓는다. (클립보드에 복사해 놓으세요.)
이 레포지토리는 'fork 레포지토리'라고 부를 것이다.
두 번째로, fork해서 새로 만들어진 내 원격 레포지토리의 깃헙 주소를 복사한다.
이 레포지토리는 그냥 말 그대로 '내 원격 레포지토리'다.


④ sourcetree를 켜서 로컬 레포지토리를 연결할 아무 폴더를 만들어 놓고 Clone을 한다.(아무리 그래도 이름은 연관성 있게 짓자.^^)


첫 번째 소스 경로/ URL 칸에 두 번째로 복사해 놓은 '내 원격 레포지토리' 주소를 붙여 넣는다.
두 번째 탐색 버튼은 Clone을 해 놓을 내 폴더를 탐색하는 버튼이다.(아무렇게나 이름 지은 테스트용 폴더를 선택하면 된다.)
클론(Clone) 이후에 로컬에서 브랜치를 따로 또 만들어서 하는 것이 안정성에 있어서 더 좋지만 귀찮아서 그냥 main 브랜치에서 진행했다.
2. 피 fork 레포지토리의 주인이 파일 내용을 추가했을 때 pull 받기
① 피fork 레포지토리의 주인인 olimolim 이라는 사람이 README.md 파일에 내용을 추가했다.

② sourcetree로 들어가서 피fork 레포지토리 연결
다음 사진과 같은 순서를 따라하면 된다.


③ 다음과 같은 모습일 것이다. 패치(fetch)를 누르자



commit history가 대강 이런 상태가 될 것이다. 밑에 자른 부분은 양해를 ...
3. 내 로컬 레포지토리와 merge, 원격 레포지토리로 push하기
① main 브랜치를 선택후 '병합'을 누른다.



가지가 다시 합쳐졌다. merge 성공!

merge를 하면 내 로컬 레포지토리, 즉, 내 컴퓨터의 파일이 업데이트 된다.
중간에 사진을 빼먹었다.
merge 한 후에 로컬 레포지토리에서 '#로컬에서 업데이트 확인해보세요' 라는 텍스트를 추가하였다.
이후에 push 버튼을 눌러 '내 원격 레포지토리'로 보내면 끝!
🎈 merge 할 때 병합 충돌이 있는 경우
맨 처음에 피fork레포지토리에서 clone해서 만든 내 로컬 레포지토리에서의 파일을 수정한다고 가정한다.
이 때 피fork레포지토리의 주인인 olimolim도 동시에 파일을 수정해서 올려놨다.
만약 이 때 fetch를 통해 파일을 받고 merge를 하면 병합 충돌이 있을 수 있다. 서로 버전이 다른 상태가 되기 때문이다.
그러면 병합 충돌을 해결하고 '내 원격 레포지토리'로 push를 하면 된다.
병합 충돌이 없다면 Thank you. merge 과정에서 병합 충돌 메시지가 없이 그냥 merge가 된다.
이후 그냥 내 원격 레포지토리로 push하여 '내 원격 레포지토리'를 업데이트 하면 된다.
4. 피 fork 레포지토리에 pull request 하기.
① '내 원격 레포지토리' 가 push를 받아서 정상적으로 업데이트 된 상태이다.

② 자세히 보면 피fork레포지토리보다 commit이 앞서 있다는 것을 알 수 있다.

③ 링크를 눌러서 들어가서 Create pull request를 눌러주자.

④ 계정 전환 후 피fork 레포지토리에 들어가면 pull requests 가 들어와 있는 것을 볼 수 있다.
Merge pull request 로 최종적으로 피fork 레포지토리도 변경된다.




끝!