Github에 올라간 commit을 깔끔하게 삭제하고 싶다면?

charlie_·2021년 9월 13일
0
post-thumbnail

1. Git log를 직관적으로 확인하는 방법

:: git log --branches --graph --decorate --oneline

  • 빨간색 글자 (ex. origin/master)
    :: remote영역
    :: 내가 remote에 push한 지점
  • 초록색 글자 (ex. master)
    :: local영역
    :: 해당 branch의 최신 commit
  • HEAD
    :: 현재 작업 중인 branch
    :: ex) develop branch에서 log를 확인했을 때

    :: ex) pages/boardlist branch에서 log를 확인했을 때

2. commit을 지우고 싶다면?

예를 들어, develop branch에서 AWS라이브러리 추가 commit을 지운다고 가정해보자. 우선 git reset --hard ac6f43e을 입력하면 'AWS라이브러리 추가'의 직전 commit인 '초기세팅 수정' commit으로 이동한다. 여기서부터 commit을 새로 쌓아올리면 'AWS라이브러리 추가' commit은 삭제된다.
Github에 push한 commit을 삭제하고 싶다면, 위와 동일한 과정을 거친 후에 새로운 commit을 입력하고 push하자.

  • 주의사항
    :: git reset --hard만 입력할 경우에는 현재 branch에서 작업한 내용 중 commit하지 않은 내용만 지워진다.
    :: 이 방법으로 지우면 원격 저장소에 흔적도 없이 commit을 삭제할 수 있다. 하지만 내 commit을 pull 한 팀원이 있다면, 다음에 그 팀원이 push할 때 내가 지운 commit이 다시 추가될 수 있다! 즉, 1. 나 혼자만 사용하는 브랜치에 커밋을 push하였고, 이를 되돌리고 싶은 경우 2. 팀원들과 직접 커뮤니케이션해서 내가 되돌릴 커밋을 pull한 팀원이 없다고 확인된 경우 사용하자!
    출처: https://enant.tistory.com/45 [ENAN]

  • reset 외에 revert 명령어를 사용할 수도 있다. 단, history에 남기 때문에 되돌릴 수도 있으므로 공개되면 안되는 파일이 업로드된 경우에는 reset을 사용해야 한다.

3. 그 외

Git의 개념과 명령어가 잘 정리된 블로그가 있어 명령어가 헷갈릴 때마다 챙겨보려고 기록한다.

profile
매일 하루에 딱 한 걸음만

0개의 댓글