# git rebase from master into feature branch PR shows all files changed

  (master에서 feature 브랜치로 rebase 후 pull request에 모든 변경 파일들이 보여져요.)

 

저도 위 질문작성자의 경우와 마찬가지로, feature 브랜치에서 작업한 내역에 대해 PR을 열어놓은 상태에서 작성자와 마찬가지로 git checkout mastergit pull origin mastergit checkout feature/ayigit rebase mastergit add 및 commitgit push origin feature/ayi 정확히 이 순서대로 진행을 했고 작성자와 정확히 동일한 이슈가 발생했습니다.

 

즉 push를 하고 나서, open 되어있던 풀리퀘를 보니, 원래라면 방금 제가 push한 feature 브랜치 내의 변경사항들만 보여져야 하는데 master 브랜치에서의 작업 내용들도 모두 포함이 되어있었읍니다.

스택오버플로우를 뒤져봐도 ... 증상과 해결방법만 나와있을 뿐.. 근본적인 원인은... 찾지 못하였네요..

 

우선 이 이슈가 발생한 상황은 아래와 같습니다.

① main(master) 브랜치가 아닌 다른 브랜치에서 작업을 함.

② main(master) 브랜치에서 feature 브랜치로 rebase 후 원격 저장소의 feature 브랜치로 push

③ pull request

④ 해당 작업 내역이 main(master) 브랜치로 아직 merge 되지 않은 상태에서 main(master) 브랜치에서 다른 작업 진행

⑤ 다시 ①부터 ③까지의 과정을 반복

⑤ 짜잔~

 

좋아요를 눌렀는데 reputation 15개가 필요하다며 반영을 안해주네요 ㅠㅠ ..

작성자분이 질문 올리신 지 한시간 만에 해결방법을 찾아서 본인 질문에 답변을 달아주셨더라구요! 이대로 따라한 덕분에 일단 급한대로 해결은 했습니다. (물론 사용하지 않는 repo에서 테스트 먼저 해봤습니당. 인터넷에서 알려준 명령어 아무거나 복붙했다가 파일을 다 날려버렸다는 끔찍한 괴담을 아시는지요 ... 😨) 해결방법은 다음과 같습니다.

 

새로 push를 하기 전에 우선 내가 올렸던 PR이 닫혀져 있는 상태인지 보고, 만약 아직 PR이 열려있는데 그 사이에 main 브랜치에 새로운 push 내역이 있다? 그렇다면 이미 작성해 둔 PR은 close 해주시고 해당 feature 브랜치를 GitHub에서만 지워주세요. (로컬저장소에 있는 브랜치를 지워버린다면 참 슬픈 상황이 생기겠죠...?) 그리고 feature 브랜치의 작업 내역을 push 하신 뒤 새로운 PR을 작성해주세요.

 

이렇게 하면 files changed 등에 feature 브랜치 작업 내역만 올라가게 됩니다~ 단점이라면 closed 된 PR 내역이 남는다는 정도겠네요..? closed 된 PR은 GitHub 측에 문의하지 않는 한 지울 수 없다고 합니다~ (참고)

 

끝~

 

 

복사했습니다!