티스토리 뷰
복구
특정 시점으로 되돌리며, 그 동안의 커밋을 무효화
리셋 | reset
- 커밋을 기준으로 이전 코드로 되돌아가는 방법
- 저장소가 공개되었거나 공유하고 있는 경우 리셋이 혼란을 야기할 수 있음.
[1] git reset --soft [커밋ID]
[2] git reset --mixed [커밋ID]
[3] git reset --hard [커밋ID]
- [1] 스테이지 영역의 상태로 되돌림 즉, 작업을 하고 add한 상태
- [2] git reset의 default 옵션으로, 워킹 디렉토리 상태로 되돌림 즉, 작업만 하고 add하지 않은 상태
- [3] 모든 내용 초기화
커밋 합치기
- git reset을 응용한 커밋 합치시
- 세개의 커밋 확인 (git log --oneline)
- 2단계 전 상태로 리셋
- 2단계 전 상태로 돌아감
- 커밋 후
그 외의 리셋
[1] git reset [파일 이름]
[2] git reset --merge HEAD~
- [1] stage상태의 파일을 unstage상태로 리셋
- [2] 방금 전 병합 커밋 리셋하여 취소
리버트 | revert
- 이전의 커밋 내역은 남겨 놓은 상태로 취소에 대한 커밋을 새로 남김
[1] git revert [커밋ID]
[2] git revert [커밋ID .. 커밋ID]
- revert를 하면 이처럼 revert했다는 내역이 남음
병합 취소
git revert --mainline 숫자 [취소할 병합커밋ID]
- reset이 직전 병합 커밋만 취소할 수 있었다면, revert는 시간이 지난 후 과거의 병합도 선택하여 취소할 수 있음
- mainline은 병합 취소 후 체크아웃될 브랜치 커밋 위치(번호)
= delete next text : 3번
= delete 1 : 2번
= rewrite text : 1번
- 병합 커밋(2530344)를 리버트하고 2번 커밋을 했던 상태로 되돌아감.
- 리베이스 같은 경우 공통 조상 파악이 힘들어 리버트 적용이 어려움.
- 저장소를 공개했다면 리셋보다는 리버트가 유용함.
'Git' 카테고리의 다른 글
9. rebase 병합 (0) | 2021.01.17 |
---|---|
8. 병합과 충돌 (0) | 2021.01.17 |
7. 스태시(임시 저장) (0) | 2021.01.16 |
6. 원격 브랜치 (0) | 2021.01.16 |
5. 브랜치 (0) | 2021.01.16 |
- Total
- Today
- Yesterday
- Advanced Functions
- db
- SQL 연산자
- 브랜치 추적
- DB execution
- Date Functions
- Data Integrity
- 깃
- git add
- 영역 무결성
- 리베이스
- Merge
- SQL
- 업스트림
- rebase
- String Functions
- 병합
- TCL
- Query
- set operator
- DML
- DDL
- 원격 브랜치
- Aggregation Functions
- 스태시
- 브랜치 삭제
- mysql
- Numeric Functions
- git
- 제약 조건
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |