'git reset'
현재 Staging Area(또는 Index)에 있는 모든 변경 내용을 언스테이징(Unstage)하고, 이전 커밋으로 되돌린다.
이 명령어를 사용하면 Staging Area에 있는 모든 변경 내용이 취소되지만, Working Directory의 파일은 영향을 받지 않고 그대로 유지된다.
git reset
기본적으로 위의 명령어를 실행하면 Staging Area의 변경 내용이 언스테이징되며, 가장 최근의 커밋(HEAD)으로 돌아간다.
만약 변경 내용을 Working Directory에서도 제거하고 이전 커밋으로 돌아가려면 '--hard' 옵션을 사용할 수 있다.
git reset --hard
주의 : '--hard' 옵션을 사용하면 Working Directory의 변경 내용도 모두 삭제되므로 조심해서 사용해야 한다. 변경 내용이 복구되지 않는다.
'git revert'
이전 커밋을 취소하고 그 취소된 내용을 새로운 커밋으로 기록하는 데 사용되는 Git 명령어이다.
다시 말해, 이전 커밋의 변경 내용을 롤백하고 그 결과를 새로운 커밋으로 저장한다.
이를 통해 기존 커밋 히스토리를 변경하지 않으면서 오류를 수정하거나 변경 사항을 취소할 수 있다.
git revert <commit-hash>
여기서 '<commit-hash>'는 취소하려는 이전 커밋의 해시(또는 일부분)입니다.
이 명령을 실행하면 Git 은 해당 커밋의 변경 내용을 되돌리고, 새로운 커밋을 생성하여 그 취소 작업을 기록한다.
예를 들어, 커밋 A에 발생한 변경 내용을 취소하려면 다음과 같이 'git revert' 명령어를 사용할 수 있다.
git revert <commit-A-hash>
이후 Git은 새로운 커밋 B를 생성하며, 커밋 B는 커밋 A의 변경 내용을 취소한 결과를 나타낸다.
'git revert' 명령어는 커밋 히스토리를 수정하지 않기 때문에 이전 커밋의 취소 작업을 추적할 수 있고, 협업 환경에서 다른 개발자들과의 작업 충돌을 방지할 수 있다.
'git add' 되돌리기
1. Unstage 파일
파일을 스테이징 영역에서 제거하고 작업 디렉토리로 되돌리려면 아래의 명령어를 사용한다.
이 명령어는 가장 최근 커밋으로 스테이징 영역을 초기화한다.
git reset
이후 변경사항을 스테이징 하지 않은 상태로 작업 디렉토리에 남게 된다.
2. 특정 파일 Unstage
스테이징 영역에서 특정 파일만 되돌리려면 파일 이름을 명시하여 아래의 명령어를 사용한다.
git reset <file-name>
'<file-name>'에는 스테이징 영역에서 제거하려는 파일의 이름이 들어간다.
이렇게 하면 'git add'로 스테이징한 파일을 되돌릴 수 있다.
하지만 주의할 점은 작업 디렉토리에서의 변경 내용은 영향을 받지 않으므로 조심해야 한다.
되돌릴 파일을 정확히 선택한 후에 'git reset'을 사용하는 것이 좋다.
'git commit' 되돌리기
1. 커밋을 수정하는 방법(Amend Commit)
만약 가장 최근의 커밋을 수정하려면 아래의 명령어 사용하면 된다.
git commit --amend
이 명령을 실행하면 편집기가 열리고, 커밋 메시지를 편집할 수 있다.
수정 후 저장하면 최근 커밋이 수정된다.
2. 특정 커밋으로 리셋하는 방법(Reset to Specific Commit)
만약 특정 커밋 이전으로 되돌리려면 아래의 명령어를 사용하면 된다.
git reset HEAD~1
이 명령은 HEAD(가장 최근 커밋을 가리키는 포인터)를 한 단계 이전 커밋으로 이동시킨다.
이후 변경 사항을 스테이징 영역에 추가하고 새로운 커밋을 만들 수 있다.
3. 커밋을 되돌리는 방법(Revert Commit)
특정 커밋을 되돌리는 방법으로 'git revert' 명령어를 사용할 수 있다.
이 명령어는 특정 커밋의 변경 사항을 되돌린 새로운 커밋을 생성한다.
git revert <commit-hash>
이 명령어를 실행하면 해당 커밋의 변경 사항을 되돌린 새로운 커밋이 생성되고, 이 커밋을 푸시하면 변경 내용이 공유 저장소에 반영된다.
'git reset'은 이전 커밋 이력을 변경하고 재작성할 때 사용하며 'git revert'는 변경 사항을 되돌리고 새로운 커밋으로 기록할 때 사용한다.
선택은 상황과 목표에 따라 달라질 수 있다.
'Git' 카테고리의 다른 글
[Git] branch를 합치는 방법 (2) | 2023.10.15 |
---|---|
[Git] 여러 branch 만들어보기 (0) | 2023.10.13 |
[Git] git add, commit 으로 변경사항 저장하기 (0) | 2023.10.11 |
[Git] .gitignore 사용해보기 (0) | 2023.10.09 |
[Git] Git 최초 설정 및 관리 시작 (0) | 2023.10.09 |