현재 풀 요청에 3 개의 수정 된 파일 (새 파일 없음)이 있습니다.
풀 요청에서 이러한 파일 중 하나를 제거하여 풀 요청에 두 개의 파일에 대한 변경 사항 만 포함하고 세 번째 파일은 원래 그대로 유지되도록하고 싶습니다.
몇 가지 시도 (파일의 원본 버전 확인 등)를 시도했지만 여전히 PR에서 변경된 파일로 표시됩니다.
이것에 대한 해결책이 있습니까?
답변
pull 요청을 생성 한 브랜치로 전환합니다.
$ git checkout pull-request-branch
수정 된 파일을 다른 브랜치의 파일로 덮어 씁니다. 마스터 라고 생각해 봅시다 .
git checkout origin/master -- src/main/java/HelloWorld.java
커밋하고 리모컨으로 푸시합니다.
git commit -m "Removed a modified file from pull request"
git push origin pull-request-branch
답변
커밋을 수정 한 다음 PR로 분기를 업데이트하는 강제 푸시를 수행 할 수 있습니다.
이 작업을 권장하는 방법은 다음과 같습니다.
- PR을 검토하는 사람이 변경 사항을 적용 할 때까지 가져 오지 못하도록 PR을 닫습니다.
- 원치 않는 변경 전에 커밋에 소프트 리셋을 수행하십시오 (사용할 수있는 마지막 커밋
git reset --soft HEAD^
이거나 다른 커밋 인 경우 ‘HEAD ^’를 커밋 ID로 바꾸고 싶을 것입니다) - 업데이트하지 않으려는 파일의 변경 사항을 취소 (또는 실행 취소)합니다.
- 새 커밋 만들기
git commit -a -c ORIG_HEAD
- 브랜치에 강제 푸시
- 풀 요청 다시 열기
이제 브랜치가 업데이트되었으므로 Pull Request에 변경 사항이 포함됩니다.
여기 가 꽤 좋은 아래의 예를 가지고 GITS 문서에 대한 링크 커밋 실행 취소 및 다시 실행을 .
답변
풀 요청은 하나의 브랜치를 다른 브랜치로 병합하라는 요청입니다.
풀 리퀘스트에는 아무것도 “포함”되어 있지 않으며 “이 브랜치를 저 브랜치에 병합하십시오”라는 표시 일뿐입니다.
PR이 웹 UI에 표시하는 변경 사항 집합은 대상 분기와 기능 분기 간의 변경 일뿐입니다. 풀 요청을 수정하려면 기능 브랜치에 대한 강제 푸시를 사용하여 기능 브랜치를 수정해야합니다.
귀하의 경우 커밋을 수정하고 싶을 것입니다. 정확한 상황에 대해서는 확실하지 않지만 대화 형 리베이스의 조합을 통해 add -p
분류해야합니다.