코드 저장소.

git pull request가 나오지 않는 경우 본문

웹개발/Git

git pull request가 나오지 않는 경우

slown 2025. 1. 10. 21:21

목차 

1. 문제 상황 

2.원인 및 해결 방법

 

1. 문제 상황

깃에 feature 브랜치를 만든 후 작성한 코드를  push를 했는데 문제는 사진과 같이 pr요청이 나오질 않는 상황입니다.

 

2.원인 및 해결 방법

원인

- 프로젝트를 생성후 코드를  작성한 다음 프로젝트의 로컬 브랜치와 깃 브랜치의 히스토리가  맞질 않아서 생겼던 문제로 당시에 main 브랜치에 최신화를 하기 위해서 pull을 사용했는데 결과는 아래의 사진과 같이 나왔습니다.

 

사진에 보면 fatal: refusing to merge unrelated histories라고 적혀 있는데 이것은 로컬 브랜치와 원격 브랜치가 각각 독립적으로 초기화되어 히스토리가 연결되지 않은 상태입니다.  그래서 깃의 이력을 다음과 같은 명령어로 확인을 해본 결과는 다음과 같았습니다.

 

사진을 보면 로컬 브랜치는 10d9dac이고 원격 브랜치는 8adcdd6으로 서로 히스토리가 맞지 않는 것을 확인할 수 있습니다.

 

해결방법

위의 문제를 해결을 하기 위해서는 로컬과 원격의 히스토리를 병합을 해야 하는데 main브랜치에서

git pull origin main --allow-unrelated-histories 으로 명령어를 내리면 다음과 같이 나옵니다.
 

 

그리고 로컬에서 작업한 내용을 유지를 하면서 원격 히스토리와 병합을 하기 위해서 main 브랜치에 push를 하면 됩니다. 

그리고 난 뒤에 git log로 확인을 해보면 다음과 같이 나옵니다.

 

 

이렇게 되면 로컬 브랜치와 원격 브랜치가 동일하게된  것을 확인할 수 있습니다.  그리고 이렇게 하면 다 될 줄 알았지만....

아직 남아 있는 부분이 있었다.  우선은 main브랜치를 8adcdd6으로 되돌리고 feature브랜치에 작업한 것을 merge해서 pr요청을 해야하는 일이 남아있다. 

 

일단 main브랜치의 작업을 되돌리기  위해서는 git에서 reset을 사용해서 깃 작업내용을 돌린 뒤 강제로 push를 하면 아래의 사진과 같이 됩니다.

 

사진과 같이 main브랜치의 내용이 이전 내용으로 되돌아간 것을 알 수 있습니다.

 

이  다음은 feature 브랜치로 변경을 해서 pr요청을 하면 끗. 인줄 알았으나....

 

main 브랜치와 똑같이 feature에  --allow-unrelated-histories  를 사용해서 main브랜치와 merge를 실행해 주면 아래의 사진과 같이 됩니다.

 

이렇게 하면 feature 브랜치에서 main브랜치를 병합하기 위한 pull Request를 할 수 있습니다.

'웹개발 > Git' 카테고리의 다른 글

Git ?  (0) 2024.12.25