Git_17_undo

지원·2023년 9월 4일
0

Git

목록 보기
17/48
post-thumbnail
  • commit을 너무 성급하게 해서 모든 수정사항을 함께
    commit하지 못했을 떄

  • commit의 메시지가 마음에 들지 않을 때

  • commit을 너무 많이 해서 여러가지로 조금씩 잘라서
    commit을 다시 하고 싶을 떄

  • commit을 너무 조금씩해서 하나로 묶고 싶을 때

  • 실수로 버그를 도입했다면
    그 commit을 다시 삭제하거나 다시 돌리고 싶을 떄

주의!!
git history를 수정하는 것은
나의 로컬에 있는 것들만 변경해야한다.

서버에 업로드 된 것들이나 다른 개발자와 이미 공유가 된 history라면
절대 수정하면 안된다.

WIP

Working In Progress (아직 진행중)

내가 로컬에서 작업하고있는 staging area 나 working directory에서
작업하는 내용을 초기화하는 방법

(연습)

  • 지금 현재는 working directory가 깔끔하게 비어있는 상태
  • 여기에서 새로운 UI를 payment.txt에 추가했다고 하자.
echo add >> payment-ui.txt
git status로 확인해보면

modified가 되었고 working directory에 파일이 있는 것을 확인 가능

restore

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로 넘어간 것을 확인할 수 있다.

reset

내가 가고자하는 포인터를 가르킬 수 있다.

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 [파일이름]

0개의 댓글

관련 채용 정보