문제 상황: 원격저장소에 브랜치 하나 팟는데 포크딴 저장소에서는 해당 브랜치가 git pull을 해도, git fetch를 해도 안보임
해결을 위한 방법:
개념:
포크된 저장소는 원본 저장소의 복사본
따라서 내 컴퓨터에서 직접 적인 연결은 포크된 저장소에 돼있음
따라서 새로 생성된 브랜치를 보려면 추가작업이 필요함.
원본 저장소를 원격으로 추가해야함
그 후 원본 저장소에서 fetch
그후 브랜치 확인과 체크아웃을 해야함
[해결 과정]
1. 원본 저장소를 원격으로 추가함.
먼저, 원본 저장소를 upstream이라는 이름으로 원격 설정에 추가한다.
이때 <original-repo-url>은 원본 저장소의 URL이다.
git remote add upstream <original-repo-url>
2. 원본 저장소로부터 fetch
upstream 원격 저장소로부터 최신 변경 사항을 가져온다.
git fetch upstream
이 명령어는 원본 저장소의 모든 브랜치를 로컬 저장소로 가져오는 명령어이다.
3. 새로운 브랜치 확인
원본 저장소에서 가져온 브랜치를 확인한다.
git branch -r
이 명령어는 모든 원격 브랜치를 보여준다.
여기서 upstream/<branch-name> 형식으로 원본 저장소의 브랜치를 볼 수 있다.
4. 새 브랜치 체크아웃
새로운 브랜치를 로컬에 체크아웃한다.
git checkout -b <new-branch-name> upstream/<new-branch-name>
이렇게 하면 원본 저장소의 새로운 브랜치를 로컬에 체크아웃할 수 있다.
5. 변경 사항 포크된 저장소에 반영하기
필요하다면, 포크된 저장소에 변경 사항을 반영하기 위해 push할 수 있다.
git push origin <new-branch-name>
포크따온 원본 브랜치에 풀리퀘스트 하는 방법은?
- 포크된 저장소에 변경 사항 푸시
git add . git commit -m "설명 추가" git push origin <branch-name>
- 먼저 포크된 저장소의 브랜치에서 필요한 모든 변경 사항을 완료하고 커밋한 후, 해당 브랜치를 포크된 저장소에 푸시한다.
- GitHub에 로그인하여 포크된 저장소로 이동한다.
- 웹 브라우저에서 GitHub에 로그인한 후, 포크된 저장소로 이동한다.
- New Pull Request 버튼 클릭
- 포크된 저장소의 GitHub 페이지에서 "Pull Requests" 탭을 클릭한다.
- "New Pull Request" 버튼을 클릭한다.
- 브랜치 비교 설정
- Base Repository 설정: 원본 저장소와 그 안의 병합을 원하는 브랜치를 선택합니다. 일반적으로 main이나 develop 브랜치가 됩니다.
- Head Repository 설정: 포크된 저장소와 그 안의 변경 사항이 있는 브랜치를 선택한다.
- 변경 사항 검토
- 비교 화면에서 변경된 파일 목록과 커밋을 검토할 수 있다.
- 모든 것이 올바른지 확인한다.
- Pull Request 제목과 설명 작성
- Pull Request의 제목과 설명을 작성하여 변경 사항의 내용을 명확히 설명한다. 이때 변경의 이유, 수정한 내용, 테스트한 부분 등을 상세히 기술하면 좋다.
- 리뷰어 및 라벨 설정 (선택 사항)
- 필요한 경우 리뷰어를 지정하여 검토를 요청할 수 있다.
- 라벨이나 마일스톤을 설정하여 Pull Request의 성격을 명확히 할 수 있다.
- Create Pull Request 버튼 클릭
- 모든 설정이 완료되면 "Create Pull Request" 버튼을 클릭하여 Pull Request를 생성한다.
Pull Request 생성 후
- 코드 리뷰: 원본 저장소의 관리자는 Pull Request를 검토하고 피드백을 줄 수 있다.
- 수정 및 추가 커밋: 피드백이 있을 경우 로컬에서 수정을 진행한 후, 동일한 브랜치에 추가 커밋을 푸시하면 Pull Request에 자동으로 반영된다.
- 병합: 모든 리뷰와 수정이 완료되면 원본 저장소 관리자가 Pull Request를 병합한다.
'형상관리 > Git' 카테고리의 다른 글
[Git] 원격브랜치를 로컬환경에 가져오기 (0) | 2024.08.15 |
---|---|
[Git]브랜치 관리 (1) | 2024.01.31 |
[Git] Detached Head의 발생 이유 및 해결 방법 (0) | 2024.01.09 |