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


102

현재 풀 요청에 3 개의 수정 된 파일 (새 파일 없음)이 있습니다.

풀 요청에서 이러한 파일 중 하나를 제거하여 풀 요청에 두 개의 파일에 대한 변경 사항 만 포함하고 세 번째 파일은 원래 그대로 유지되도록하고 싶습니다.

몇 가지 시도 (파일의 원본 버전 확인 등)를 시도했지만 여전히 PR에서 변경된 파일로 표시됩니다.

이것에 대한 해결책이 있습니까?


파일에 대한 수정 사항이 자체 커밋에있는 경우 대화 형 리베이스를 수행하고 변경하지 않으려는 파일에 영향을주는 커밋을 제거한 다음 브랜치에 강제 푸시를 수행 할 수 있습니다. Github는이를 자동으로 감지해야합니다.
Dentych

답변:


238

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

4
작동하지 않음 오류 표시 : pathspec '{file / path.js}'가 git에 알려진 파일과 일치하지 않습니다.
raftaar1191

8
그냥 제대로 경로를 확인 작업 및 솔루션을 입증
파반 T

2
파일 주위의 파일이 작품은 내가 사실은 내가 경로와의 뭔가 잘못된 것 같아요 ... 그래서에서 작업을 수행 할
팀 볼랜드

이 방법을 사용하면 파일을 덮어 쓰므로 해당 파일에서 수행 한 작업을 잃게됩니다. 다른 지점 및 / 또는 다른 PR을 위해 보관할 수 없습니까?
Ernest Jones

1
@ArpitAggarwal 이것은 잘 작동합니다. 정말 고맙습니다.
Chaklader Asfak Arefe

10

커밋을 수정 한 다음 PR로 분기를 업데이트하는 강제 푸시를 수행 할 수 있습니다.

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

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

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

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


-5

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.