git push 후 rebase를 해야 한다거나, commit 내용을 수정해야한다거나, 여러 이유로 다시 되돌리고 싶을 때가 있을 때 사용하는 방법
💥주의!!!
협업 시 사용 안하는 것이 좋음. 개인 프로젝트 때만 사용하는 것이 안전하다..
# 위에서부터 3번째까지 조회
git rebase -i HEAD~3
1번의 명령어를 치면 위에서부터 세번째까지 보여준다.
가장 위에 있는 commit이 가장 과거이다.
가장 상단의 것만 제외하고 명령어 i
를 눌러 pick을 squash로 변경한다.
그리고 esc
를 누른 후 명령어 :wq
를 입력하여 저장한다.
그렇게 되면 뭐 commit message 수정하는 내용이 나오거나 할텐데 나는 그냥 :wq
입력했다.
그러면 새로운 commit분이 생긴다.
그리고 아래의 명령어를 입력하면 rebase 했던 것들이 덮어씌워지면서 합쳐진 commit이 대체된다.
git push origin 브랜치 --force
#또는
git push origin +브랜치
# 위에서부터 3번째까지 조회
git rebase -i HEAD~3
1번의 명령어를 치면 위에서부터 세번째까지 보여준다.
가장 위에 있는 commit이 가장 과거이다.
message를 변경하고 싶은 commit을 찾고 명령어 i
를 눌러 pick을 squash로 변경한다.
그리고 esc
를 누른 후 명령어 :wq
를 입력하여 저장한다.
그러면 메시지를 수정하라는 내용이 뜰텐데 명령어 i
를 입력 후 수정하고 :wq
로 저장한다.
그러면 새로운 commit분이 생긴다.
그리고 아래의 명령어를 입력하면 변경한 commit message가 덮어씌워지면서 push 된다.
git push origin 브랜치 --force
#또는
git push origin +브랜치
# 위에서부터 3번째까지 조회
git rebase -i HEAD~2
1번의 명령어를 치면 위에서부터 두번째까지 보여준다.
가장 위에 있는 commit이 가장 과거이다.
사용자를 변경하려고 하는 commit을 명령어 i
를 눌러 pick을 edit으로 변경한다.
그리고 esc
를 누른 후 명령어 :wq
를 입력하여 저장한다.
2번을 실행하고 나면 아래의 내용이 나온다.
git commit --amend --author="이름 <이메일>"
위 명령어로 사용자 정보를 입력한다.
그러면 아래의 내용이 보이는데 잔디만 심을 것이기 때문에 esc
를 누른 후 명령어 :q
로 나가준다.
다음 파일 처리를 위해 명령어를 입력한다.
git rebase --continue
3번을 실행한다.
모두 완료했다면 아래의 명령어로 강제 push 한다.
git push origin 브랜치 --force
#또는
git push origin +브랜치
esc
를 누르고 :q!
를 눌러 나간다.
해당 명령어는 저장하지 않고 해당 편집기를 나가겠다는 뜻이다.
git rebase --abort