실수로 API 같은 민감 정보가 올라간 경우, 혼자라면 조용히 해당 커밋을 삭제하면 되지만 협업을 하는 중이라면 관련된 사람들의 커밋도 모두 확인해야 한다. 계속해서 커밋 속에 해당 정보가 남아서 돌아다닐 수 있기 때문이다.
거기에 더해서 그럼 문제를 간과하고 다른 커밋들이 이어서 쌓인 경우 중간에 문제되는 부분을 잘라내듯이 처리해야 한다.
커밋이 1 - 2 - 3 - 4 - 5 - 6 - 7 로 진행해야하는데 3번 4번 5번이 문제가 된 경우를 예로 들 수 있다.
일단 깃 배쉬를 열어서 git log 부터 확인해야 한다.
HEAD로 표시된 것이 가장 최근 커밋이다. 가장 최근 커밋이 아닌 중간에 문제가 된 커밋을 날려야하기 때문에 commit 다음에 오는 커밋 아이디를 확인해줘야 한다.
git reset을 사용하는 방법도 있긴 하지만, rebase를 이용해보았다.
git rebase -i 해당커밋아이디
위 명령어를 입력하면 커밋 아이디 이후부터 현재(HEAD) 까지의 커밋 내역이 표시된 편집기가 뜬다.
pick 으로 표시된 커밋들을 확인한 뒤, drop을 사용해서 문제가 된 커밋들을 삭제해준다.
:wq 를 눌러 저장하고 나와서 다시 git log를 입력해주면 해당 커밋들이 삭제된 것을 확인할 수 있다.
수정된 사항을 반영하기 위해 git push origin <브랜치명> --force 을 입력하여 강제로 수정사항을 원격 저장소에 push해주면 문제가 되었던 커밋을 정리할 수 있다.
혼자서 작업하는 공간이라면 이런 작업이 크게 문제가 되지는 않지만 협업을 하는 중이라면 관련된 협업자들도 필요한 수정 작업을 진행해야하기 때문에 처음부터 커밋을 신중하게 하는 것이 중요하다.
'Co-work > GitHub' 카테고리의 다른 글
이클립스에서 생성한 프로젝트를 GitHub에 업로드하기 (0) | 2023.08.26 |
---|---|
stash (0) | 2023.08.07 |
commit message 수정 (0) | 2023.07.30 |
upstream 관련 추가 정리 (0) | 2023.07.29 |
Git 협업 _ Fork Workflow (1) | 2023.07.27 |