[git] 풀 요청에서 수정 된 파일 제거

현재 풀 요청에 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로 분기를 업데이트하는 강제 푸시를 수행 할 수 있습니다.

이 작업을 권장하는 방법은 다음과 같습니다.

  1. PR을 검토하는 사람이 변경 사항을 적용 할 때까지 가져 오지 못하도록 PR을 닫습니다.
  2. 원치 않는 변경 전에 커밋에 소프트 리셋을 수행하십시오 (사용할 수있는 마지막 커밋 git reset --soft HEAD^이거나 다른 커밋 인 경우 ‘HEAD ^’를 커밋 ID로 바꾸고 싶을 것입니다)
  3. 업데이트하지 않으려는 파일의 변경 사항을 취소 (또는 실행 취소)합니다.
  4. 새 커밋 만들기 git commit -a -c ORIG_HEAD
  5. 브랜치에 강제 푸시
  6. 풀 요청 다시 열기

이제 브랜치가 업데이트되었으므로 Pull Request에 변경 사항이 포함됩니다.

여기 가 꽤 좋은 아래의 예를 가지고 GITS 문서에 대한 링크 커밋 실행 취소 및 다시 실행을 .


답변

풀 요청은 하나의 브랜치를 다른 브랜치로 병합하라는 요청입니다.

풀 리퀘스트에는 아무것도 “포함”되어 있지 않으며 “이 브랜치를 저 브랜치에 병합하십시오”라는 표시 일뿐입니다.

PR이 웹 UI에 표시하는 변경 사항 집합은 대상 분기와 기능 분기 간의 변경 일뿐입니다. 풀 요청을 수정하려면 기능 브랜치에 대한 강제 푸시를 사용하여 기능 브랜치를 수정해야합니다.

귀하의 경우 커밋을 수정하고 싶을 것입니다. 정확한 상황에 대해서는 확실하지 않지만 대화 형 리베이스의 조합을 통해 add -p분류해야합니다.


답변