2017-04-05 20 views
5

내가 지형지 물을 만들었습니다. github에 feature/branch1라고 가정 해 봅시다. 풀 요청을 생성하여 병합했습니다. 그것은 우리의 파이프 라인에 도착했을 때 Initial PR Merge Commit병합 병합을 위해 되돌리기 되돌리기

, 우리는 문제가 발생했습니다 생각하고 우리는이 우리가 마스터와 합병하고 모든 것이 잘이었다 "되돌리기"PR을 만들어 힘내 에 되돌리기 버튼을 사용하여 복귀 얻었다. Reverted Merge Commit

몇 주 후, 마스터에 병합되었다 후 다른의 PR, 우리는 우리가 을 되돌리기 - 더 - 복귀 할 생각. 이번에 Revert 버튼을 다시 사용하려고 시도한 Revert PR에 들어가 보았습니다. 하지만이 오류 메시지가 나타납니다.

Sorry, this pull request couldn’t be reverted automatically. 
It may have already been reverted, or the content may have changed since it was merged. 

이 되돌리기를 어떻게 완료합니까?

가장 이상적인 상황은 되돌리기가 포함 된 새 분기가이므로 다시 변경하고 PR 프로세스로 되돌아 갈 수 있습니다.

+0

되돌리기 위해 사용한 도구는 무엇입니까? 나는 심각하게 git 자체가 그것을 인쇄 할 것이라고 의심한다. – max630

+0

이'되돌리기 '버튼은 github의 기능이다. – Serendipity

답변

4

나는 개인적으로 불필요하다고 생각하는 github의 인공 수표입니다.

git fetch origin master 
git checkout origin/master (or reset) 
git revert <REVERT HASH> 
git push origin master 

되돌리기 이후의 변경 사항과 모듈로 충돌하여 성공해야합니다.

추신 : 실제로 충돌은 충돌로 인한 것일 수 있습니다.

+0

충돌 때문에 실제로 오류가 발생했습니다. github이 실제로 많은 정보를 제공하지는 않지만. – Serendipity

0

당신이 시도 할 수 있습니다 것은 다음에

  • 리셋 (git reset --hard old_commit)이 PR 지점은합니다 (복귀 된 하나)
  • 힘 푸시 (git push --force) 그 지점으로 되돌리려 커밋 : 그 PR을 업데이트 할 것입니다.

그런 식으로 PR은 이전 커밋으로 다시 수행됩니다.

이것은 병합 커밋입니다. PR은 이미 닫히고 병합되었습니다. 당신은 오래된 PR 분기를 가져올 수있는 경우이 경우

은, 당신은 할 수 있습니다 :

  • 그것에 git log이 (git log origin/old_pr_branch)
  • 이전 SHA1에서 새 가지가를 나타내는 커밋 원산지

    에 지금

    git checkout -b new_pr_branch old_sha1 
    
  • 밀어 원하는 컨텐츠

당신은 다음 오른쪽 내용으로, 그 새로운 지점에서 새로운 PR을 할 수 new_pr_branch 0

자식 푸시 -u 기원.

+0

여기에 더 많은 정보가 필요합니다. 이것은 병합 커밋입니다. PR이 이미 닫히고 병합되었습니다. 나는 닫힌 PR을 다시 열 수 없다는 것을 읽었다. 나는 당신의 대답을 잘못 읽고 있니? – Serendipity

+0

@Serendipity 나는 PR이 닫히지 않았다. PR 지점에 계속 액세스 할 수 있습니까? 아이디어는 이전 커밋 (되돌아온 것이지만 지금은 원하는 것)을 기반으로 새로운 브랜치를 만들고 그 새로운 브랜치에서 새로운 PR을 작성하는 것입니다. – VonC

+0

PR 지점에 액세스 할 수 있습니다. 그렇습니다. 그러나, 당신의 대답을 읽는 방법, 그것은 기존의 PR 지점을 업데이 트하는 것 같습니다 – Serendipity