commit을 너무 성급하게 해서 모든 수정사항을 함께
commit하지 못했을 떄
commit의 메시지가 마음에 들지 않을 때
commit을 너무 많이 해서 여러가지로 조금씩 잘라서
commit을 다시 하고 싶을 떄
commit을 너무 조금씩해서 하나로 묶고 싶을 때
실수로 버그를 도입했다면
그 commit을 다시 삭제하거나 다시 돌리고 싶을 떄
주의!!
git history를 수정하는 것은
나의 로컬에 있는 것들만 변경해야한다.
서버에 업로드 된 것들이나 다른 개발자와 이미 공유가 된 history라면
절대 수정하면 안된다.
Working In Progress (아직 진행중)
내가 로컬에서 작업하고있는 staging area 나 working directory에서
작업하는 내용을 초기화하는 방법
(연습)
echo add >> payment-ui.txt
git status로 확인해보면
modified가 되었고 working directory에 파일이 있는 것을 확인 가능
modified했던 것을 취소하기
git restore [파일이름] git restore . --- 프로젝트 전체 안에 있는 working directory에 있는 파일들을 초기화
modified된 파일이 staging area에 있고
다시 취소하고싶다면(working directory로 가져가고 싶다면)
echo add >> payment-ui.txt
git add . ---> staging area로 옮기기
git status로 상태를 확인해보면 staging area로 옮겨진 것을 확인 가능
staging area에 있는 파일을 working directory로 가져오기
git restore --staged [파일이름] git restore --staged . ---> 모든 파일들을 working directory로 가져옴 git restore --staged payment-ui.txt
상태를 확인해보면 working directory로 넘어간 것을 확인할 수 있다.
내가 가고자하는 포인터를 가르킬 수 있다.
HEAD 버전에 맞게 초기화를 해주라는 명렁어
git reset HEAD .
staging area에 있는 파일들이 다시 working directory로 옮겨진다.
다시 staging area로 보내기
git add . git status
다시 working directory로 보내기
git restore --staged .
어떤 commit으로부터 파일을 초기화할건지 설정
ex)
git restore --source=HEAD~2 파일이름
여기서 초기화하고 싶은 파일을 찾는다.
git hist git show [해시코드] --- 보고싶은 commit 복사해서 보기
이 예제에서 HEAD로부터 2번쨰 있는 곳으로 이동하면
초기화시키고싶은 파일이 삭제된다.git restore --source=HEAD~2 [파일이름]