Git Pull Request 수정하기
협업을 하고 있다면 Git Pull Request를 통해 진행하고 있을 텐데,
만약 PR을 날린 뒤에 리뷰를 통과하지 못하거나, 미흡한 부분들이 발견되어 수정하라고 결과가 나왔을 때 단순히 Close 하는 게 아니라 날린 Pull Request를 수정하는 방법에 대해 알아보자.
우선 첫 번째 방법으로는 commit을 덮어 씌운 다음 push -f 옵션으로 해당 브랜치에 다시 밀어 넣는 방법이다.
1. Pull Request 날리기
이런 식의 Pull Request를 날렸다고 가정하자.
오타를 확인 못하고 Pull Request를 날려 이 오타를 수정하고 싶다.
2. 로컬에서 수정 후 git commit --amend를 통해 commit 덮어쓰기
3. git push -f origin [branch]를 통해 해당 브랜치를 원격 저장소에 push 하기
-f 옵션을 사용하는 이유는 강제로 Push를 해 줘야 하기 때문이다.
강제 push이기 때문에 사용할 때 조심해야 하고 본인만 사용하는 브랜치일 경우에는 딱히 상관은 없다.
(-f옵션을 주지 않으면 어차피 에러가 발생하니 -f옵션으로 강제 push를 진행해 주자.)
자 이렇게 따로 Pull Request를 날려줄 필요 없이 기존에 있던 Pull Request가 수정되는 것을 볼 수 있다.
참고: https://kimtaehyun98.tistory.com/119
두 번째 방법으로는 덮어씌우는 게 아니라 Pull Request에 커밋을 추가하는 것이다.
커밋 자체가 잘못됐다면 커밋을 수정하는 첫 번째 방법도 괜찮은 방법이나, 추가로 작업하거나 그냥 이력을 남기고자 한다면 덮어씌우는 것보다는 commit을 추가하는 게 나을 것이다.
이건 특별히 따로 보여줄 건 없고 첫 번째 방법이랑 크게 다를 건 없다 단지 강제 옵션을 주지 않는 것뿐
1. 로컬에서 작업 후 git commit을 통해 commit 을 추가해 준다.
2. git push origin [branch]를 통해 해당 브랜치를 원격 저장소에 push 한다.
첫 번째 방법이랑 다른 건 --amend 옵션과 -f 옵션을 굳이 주지 않고 추가해 주고 밀어 넣었다는 점이다.
탭에 보면 Commits의 숫자가 2개로 늘어난 것을 볼 수 있다.
두 방법 모두 하나의 PR에서 계속해서 수정해 주는 방식으로 사용한 것이다.
첫 번째 방법은 구글링 하면 가장 많이 나오는 방법 중에 하나고 두 번째 방법은 그냥 이렇게는 안되나 해서 테스트해봤더니 잘 되길래 정리해 둔 것이다.
댓글