반응형
 

Introduction to Git and GitHub

Google에서 제공합니다. In this course, you’ll learn how to keep track of the different versions of your code and configuration files using a popular ... 무료로 등록하십시오.

www.coursera.org

 

 

변경 사항 되돌리기

git checkout 

  • 스테이징되지 않은 파일의 변경사항을 되돌릴 수 있다.
  • 파일을 마지막 스토리지 스냅샷으로 되돌린다.

 

git reset

  • 스테이징된 변경 사항을 되돌려야 하는 경우 사용할 수 있다.
  • add의 반대 기능
    • add : 변경 사항을 스테이징 영역에 추가
    • reset : 스테이징 영역에서 변경 사항 제거

 

커밋 수정하기

git commit --ammend

  • 현재 스테이징 영역에 있는 내용을 사용하여 이전 커밋을 덮어쓰는 커밋 워크플로우를 실행한다.
  • 기존의 마지막 커밋을 수정하는데 사용한다.
    • 누락된 파일 추가 or 커밋 메시지 수정하는 경우
  • 공개되었거나 공유된 레포지토리에 푸시된 커밋은 --ammend를 사용하여 수정X
    • Git 히스토리가 재작성되어 이전 커밋이 제거되고 수정된 커밋으로 대체되기 때문에 혼란을 초래할 수 있다.

 

git revert

단순히 변경 사항을 되돌리는 것이 아니라, 잘못된 커밋에서 이루어진 모든 변경 사항을 반대로 취소하는 커밋 생성

 

  • 변경 사항을 되돌린 효과를 얻을 수 있다.
  • 프로젝트의 커밋 히스토리는 일관성을 유지하며 정확히 무슨 일이 일어났는지 기록을 남길 수 있다.

 

  • head를 사용하여 최신 커밋으로 되돌릴 수 있다.
    • head를 현재 커밋의 스냅샷을 가리키는 포인터로 생각할 수 있다.
git revert head
Revert "Add call to disk full function"

This reverts commit <commit-hash>.
Reason: Called an undefined function.

 

 

commit id

  • git log 명령어를 실행할 때 commit 뒤에 나오는 복잡한 문자열
  • SHA1 알고리즘을 사용하여 계산된 해시
    • 입력한 데이터로부터 40자 길이의 문자열을 생성한다.
    • 커밋 메시지, 날자, 저자 등을 포함하여 커밋을 구성하는 모든 정보에서 해시가 계산된다.
    • 두 개의 다른 커밋이 동일한 해시를 생성하는 경우, 충돌이라고 한다.
git show 30e70712882267ca2dd749acfa02ea3aacfd0b24
  • 커밋 id를 활용하여 특정 커밋을 확인할 수 있다.
  • 보통 처음 4~8글자 정도의 커밋 id를 사용하면 특정 커밋을 식별하는데 문제가 없다.
git revert 30e7
  • 최근 커밋이 아닌 커밋을 롤백할 수 있다.
반응형