-
Notifications
You must be signed in to change notification settings - Fork 24
개발 작업 후 Push, Pull Request, 동기화
표준 프레임워크 개발 환경에서 소스를 수정하면, Package Explorer 의 수정된 파일명 좌측에
처럼 '>' 문자가 표시된다. Git Staging View의 Unstaged Changes에도 표시된다.
내 로컬 저장소로 commit 하기 위해 Git Staging View의 Unstaged Changes 의 수정된 파일을 선택 후
클릭 또는 Staged Changes로 드래그 앤 드롭 하면 다음과 같이 선택한 파일명 앞의 아이콘이 바뀌며 Staged Changes 에 추가된 것을 알 수 있다.
Commit Message 란에 작업 내용을 작성 후 [Commit] 또는 [Commit and Push...] 버튼을 클릭한다.
Commit 은 내 로컬 저장소로 반영하는 것이고, Commit and Push는 내 로컬 저장소와 내 원격 저장소에 동시에 반영하는 것이다.
내 로컬 저장소로 Commit만 해 놓았다가, 내 원격 저장소로 한번에 Push할 수도 있다.
수정된 소스를 로컬 저장소로 Commit 한 후 바로 내 원격 저장소로 Push 하려면 Commit Message를 입력한 후 [Commit and Push...] 버튼을 클릭한다.
다음과 같이 원격 저장소를 확인 하는 대화창이 표시되며 [Preview >] 버튼을 클릭한다.
Push Confirmation 창에서 내용을 한번 더 확인하고, [Push] 버튼을 클릭한다.
GitHub 사이트의 내 원격 저장소에 commit 한 내용을 확인할 수 있다.
표준 프레임워크 원격 저장소(Upstream)에 나의 수정 사항을 반영 요청하기 위해, 내 원격 저장소의 [Pull Request] 를 클릭한다.
다음과 같이 내가 수정한 내용을 확인 후 [Create pull request] 녹색 버튼을 클릭한다.
Pull request 요청 내용을 작성 후 [Create pull request] 버튼을 클릭한다.
표준 프레임워크 원격 저장소로 나의 Pull request가 요청되었음을 확인 할 수 있다.
- 검토 내용 확인 표준 프레임워크 센터에서 작성한 검토 내용은 나의 받은 이메일함에서 확인 할 수 있다.
- 원본 원격 저장소 브랜치에 병합 확인 표준프레임워크 원격저장소 브랜치에 병합되면, 다음과 같이 수신된 이메일로 확인할 수 있다.
시간이 흐르면서 원본 원격 저장소는 여러 개발자들로부터 Pull Request를 받아 브랜치에 병합하게 되면,
내 로컬 저장소의 소스들과 달라지기 때문에 원본 원격 저장소의 최신 commit을 내 로컬 저장소에 반영해야 한다.
개발 환경에 표준 프레임워크 원본 원격 저장소를 추가하기 위해 Git Repositories 창에서 Remote를 선택하고,
마우스 우클릭하여 'Create Remote...' 선택한다.
Remote name을 입력, Configure fetch 선택 후 [Create] 버튼을 클릭한다.
Configure Fetch 다이얼로그 창에서 [Change...] 클릭 후 표준 프레임워크 원본 원격 저장소 URL을 입력하고 [Finish]를 클릭한다.
Configure Fetch 창에서 [Save] 를 클릭한다.
표준 프레임워크 원격 저장소로부터 최신 commit를 가져오기 위해서 Package Explorer에서 프로젝트를 선택 후
마우스 우클릭하여 Context 메뉴에서 Team > Pull... 메뉴를 선택한다. Remote를 표준프레임워크 원본 원격 저장소로 선택한 후 [Finish] 를 클릭한다.
표준 프레임워크 원격 저장소로부터 최신 commit를 가져오기(Pull) 한 후 Conflict가 발생하는 경우엔
처럼 빨강색 아이콘이 표시된다.
Git Staging View에서 Conflict 발생 파일을 선택 후 마우스 우클릭, Compare with index 메뉴를 선택한다.
Staged 파일 내용과 로컬 파일을 비교할 수 있도록 에디터 영역이 구성되며, 이를 참조하여 로컬 파일을 수정 및 테스트를 거쳐 가며 Conflict를 해결한다.
내 로컬 저장소는 표준프레임워크 원격 저장소와 동기화 되었지만, 내 원격 저장소는 아직 반영이 되지 않은 상태이기 때문에 Push 하게 되면 원본 원격 저장소와 Forked 된 내 원격 저장소와 일치 된다.