[모두의 깃&깃허브]3장. 버전 가지고 놀기
1. 버전 비교하기
2. 작업 되돌리기
3. 스태시로 작업 임시 저장하기
1. 버전 비교하기
1) 직전 버전과 비교
2) 버전별 비교
찾고자하는 커밋에서 찾고자 하는 파일, 우클릭 -> 선택한 버전 열기
n 번째 버전 파일 선택 + ctrl + m 번째 버전 파일 클릭 : n 번째, m 번째 차이점 확인 가능
-> 몰랐던 기능.. 오
2. 작업 되돌리기
+) 버전이 만들어지는 과정
1) 작업 디렉터리에서 변경 사항 생성
2) 스테이지로 올리기
3) 커밋
1) 스테이지에 올라간 파일 되돌리기 : 스테이지에서 내리기 or - 클릭
2) 스테이지에 올라가지 않은 파일 되돌리기 :
변경된 파일 : 우클릭 후, 폐기 (discard)
새로 생성된 파일 : 제거
3) 커밋 되돌리기 : revert, reset
1) revert(커밋 되돌리기) : 버전을 되돌리되, 되돌아간 상태에 대한 새로운 버전(커밋)을 만드는 방식
* 기존의 버전 삭제 x
ex. 다섯 번째 비전을 네 번째로 되돌리고 싶음 : 네 번째로 되돌아간 새로운 여섯 번째 커밋이 만들어짐
2) reset(이 커밋까지 현재 브런치를 초기화) : 되돌아갈 버전의 시점으로 완전하게 되돌아가는 방식 (= 되돌아갈 버전 이후의 버전 : 삭제)
+) 버전이 만들어지는 과정
1) 작업 디렉터리에서 변경 사항 생성
2) 스테이지로 올리기
3) 커밋
1 soft (reset) : 커밋했다는 사실만 되돌림 (작업 디렉터리 내 변경 사항, 스테이지에 추가된 변경 사항은 유지)
-> 스테이지에 올린 파일까지 유지
2 mixed : 스테이지와 커밋을 되돌림 (작업 디렉터리 내 변경 사항은 유지)
-> 변경 사항을 생성한 상황만 남음
3 hard : 작업 디렉터리 내 변경 사항까지 통째로 되돌림 (작업 디렉터리 내 변경 사항까지 통째로 되돌림)
soft reset | 커밋만 되돌리기 | 모든 로컬 변경 사항을 유지 |
mixed reset | 스테이지까지 되돌리기 | 작업 상태는 그대로 두지만 인덱스는 리셋 |
hard reset | 작업 디렉터리까지 되돌리기 | 모든 작업 상태 내 변경 사항을 버림 |
내가 커밋 되돌리기를 사용한 방식은...
직전 커밋으로 되돌아갈 때 : revert (되돌렸다는 사실까지 커밋에 남기기 위해)
revert의 한계 : 한 번에 하나씩, 차례대로 되돌려야함 -> 여러 커밋 전의 버전으로 돌아가기 위해서는 reset 사용 + hard만 선택
soft, mixed는 쓸모가 없다고 생각해서 사용하지 않았는데, 해당 기능을 사용하면 좋은 상황에 대해 고민해보기
3. 스태시로 작업 임시 저장
스태시(stash) : 임시 저장 기능
사용하는 상황 : 작업 내역이 썩 마음에 들지 않지만 버리기는 아까울 때 or 갑자기 다른 더 중요한 일을 처리해야 할 때
-> 지금까지의 변경 내역을 전부 지워버리는 것이 아니라, 임시 저장해두기
스태시 : 작업 디렉터리에서 생성한 모든 변경 사항이 임시 저장되고, 작업 디렉터리는 변경 사항이 생기기 전의 깨끗한 상태로 돌아감
+ 스태시로 임시 저장된 변경 사항들 : 언제든 다시 꺼내어 작업 디렉터리에 다시 적용 가능
* 주의 : 스태시를 사용할 수 있는 파일 : 깃이 변경 사항을 추적하는(tracked) 파일에만 사용 가능
즉, 스테이지에 이미 올라와 있거나 한 번이라도 커밋한 적이 있는 파일에만 사용 가능 (untracked 파일에는 사용 x)
-> GitHub Desktop 버전에서는 stash가 한 번만 저장이 돼서, 주로 사용하지 않았는데
소스트리에서는 스태시에 여러 개를 만들 수 있고, 메시지도 입력 가능하다.. 오..! 여러 변경 사항을 임시 저장 가능하다...? 전까지 임시저장도 커밋으로 남겼었는데, 앞으론 스태시를 더 애용할 것 같다 !