<Git Chapter 2> - 시간 여행 하기 2

심우열·2023년 1월 2일
0

Git

목록 보기
4/27

과거로 돌아가는 두가지 방법

  1. reset (초기화) : 원하는 시점으로 돌아간 뒤 이후 내역들을 지움
  2. revert (돌아가는 것) : 되돌리기 원하는 시점의 commit 을 거꾸로 실행합니다.
  3. reset vs revert :
    1. revert 는 reset 과 다르게 commit 내역을 삭제하지 않고 돌아가고자 하는 commit을 거꾸로 수행하는 commit 을 생성하며 변경사항 되돌리기
    2. 이전 commit 시점의 어떠한 특정 commit 에서만 수정이 필요할 경우 revert 를 사용
    3. 개발자들은 Git을 사용해서 코드를 공유하고 협업하는데, 한번 공유 공간에 올라간 내역을 reset 해버리면 협업시 문제가 발생, 따라서 한번 공유가 된 커밋들은 revert 를 사용해서 되돌려야 함

과거로 돌아가기 실습

1. reset

  1. git log 로 돌아가고자 하는 commit 의 해쉬 확인
  2. log 내역 중 원하는 commit에서 commit 0bf48c5~~~
  3. 앞 6 ~7 글자만 복사
  4. git reset --hard 0bf48c5
  5. —hard 는 reset의 옵션
  6. 위와 같이 reset을 하면 폴더 내의 파일 상태들이 변해 있다. reset 이전 백업해둔 .git 파일을 다시 복사해서 넣어주면, .git은 파일의 변경사항들을 인식하고 commit 을 기다리고 있다. 이것을 무시하고 원상태로 복구하기 위해서는
  7. git reset —hard
  8. 위와 같이 실제로 하지는 않음

2. revert

  1. 돌아가고자 하는 commit 의 해쉬 확인
  2. git revert 해쉬
  3. Revert “commit 메세지 이름” 의 commit 생성됨
  4. 추가 변경사항이 없으면 :wq로 vim 나오기
  5. 협업시 사용하는 방법

3. revert 로 돌아가고자 하는 commit의 변경 사항이 충돌할경우

  1. 오류 메세지를 보고 git add/rm “파일이름” 또는 파일 내용 직접 수정
  2. git revert —continue
  3. Revert “commit 메세지 이름” 의 commit 생성됨
  4. 추가 변경사항이 없으면 :wq로 vim 나오기
  5. 협업시 사용하는 방법

4. revert 한 내역을 reset으로 돌아갈 수 있음

  1. git reset —hard 해쉬

5. 커밋하지 않고 revert 하기

  1. 원하는 다른 작업을 추가한 다음 함께 commit
  2. git revert —no-commit 되돌릴 commit 해쉬
  3. 취소하려면 git reset —hard
    1. commit 되지 않은 내역을 돌리고 마지막 commit 으로 돌아가고 싶은 경우

6. 소스트리 이용

profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글