사이드 프로젝트 하다가 무지성 커밋 & PR 한 목록들이 있었는데...
깔끔히 나 그런 거 안한 척 ^^ 해보기로 했다
사이드 프로젝트 A -> upstream
fork 한 me/A -> origin
얘를 pc에 클론받음 -> local
로컬에서 main 브랜치로 이동
git switch main
git remote add upstream 깃주소
git fetch upstream
git pull upstream main
main으로부터 새 브랜치를 만들어 준다
git checkout -b 새브랜치 main
소스를 수정하고 커밋 메시지를 컨벤션에 맞게 예쁘게 적어준다
git commit -m "커밋메시지"
git push origin 새브랜치
다시 메인으로 이동
git switch main
그 다음에 upstream main 에서 되돌리길 원하는 커밋 시점을 찾아 커밋 id를 복사한다
** 주의 여기서는 함부로 따라하지 말고 각 명령어가 어떤 걸 뜻하는지 확인 또 확인 후 따라하세요 **
git reset --hard 커밋ID
이러면 로컬의 main에서 해당 시점 이후의 커밋들이 없어진다
git push --force origin main
내가 포크받은 깃허브 me/A 에서 해당 시점 이후의 커밋이 없어진다
git push --force upstream main
upstream main에서 해당 시점 이후의 커밋이 없어진다 ** 주의 ! **
이게 바로 안 될 수 있는데,
레파지토리 설정에서 branch -> force push 권한이 체크가 되어 있어야 한다
작업 때만 잠시 풀어주고 다시 권한을 빼자!
위 명령어까지 하면 upstream 레파지토리에서 원하는 시점 이후의 커밋이 싹 사라진 걸 볼 수 있다
우리는 아까 커밋을 새로 하고
git push origin 새브랜치 를 해주었기 때문에
새로 pr을 컨벤션에 맞춰서 하면 예쁘게 main의 커밋 이력을 관리할 수 있다 ^^~
'개발' 카테고리의 다른 글
자바 스프링부트 앱- 로그 레벨별로 여러 로그 파일 남기기 (0) | 2022.01.23 |
---|---|
쉘스크립트로 슬랙 메시지 보내는 방법 (0) | 2021.11.18 |
gcp jupyter notebook에서 url 사용하여 xml 파일 파싱하기 (0) | 2021.11.14 |
코랩 프로+, colab pro plus 요금제 사용기 (6) | 2021.08.16 |
Mongodb에서 특정한 문자열 검색해서 결과물 리턴하기 (0) | 2021.06.10 |