일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pandas
- 윈도우10
- python
- html
- win32com
- 파이썬
- git
- 문자열
- pyqt5
- 파이썬GUI
- Android
- Windows10
- 윈도우11
- Outlook
- 깃
- VBA
- Excel
- 비주얼베이직
- office
- 엑셀
- 아웃룩
- 오피스
- pythongui
- Windows11
- 파워포인트
- matlab
- python3
- 안드로이드
- windows
- 파이썬3
Appia의 IT세상
[깃, Git] Git 커밋(commit) 취소하기 feat. git reset, git revert 본문
[깃, Git] Git 커밋(commit) 취소하기 feat. git reset, git revert
이전 Git에 대한 포스팅에서 Git의 변경사항에 대해서 스테이지에 add된 항목들에 대해서 취소하는 방법에 대해서 살펴봤습니다. 물론, 이 부분이 매우 효율적으로 사용될 수 있고, 실제 작업을 할 경우에 많이 사용되는 부분입니다. 아마도 매우 효율적으로 잘 사용하실 것이라고 생각합니다. 이번 포스팅에서는 Git의 커밋(commit)을 취소하는 방법에 대해서 2가지 명령어를 사용해서 알아보고자 합니다.
제가 커밋(commit)을 취소할 2가지 명령어는 다음과 같습니다.
- git reset
- git revert
1) git reset
먼저, git reset 명령어를 통해서 알아보고자 합니다.
$ git reset <commit-hash>
그럼 간단한 예시를 통해서 한번 살펴보도록 하겠습니다. 먼저 이전에 사용한 간단한 repository를 재활용하도록 하겠습니다.
여기에서 현재 사용하는 repository에 현재 commit 상황에 대해서 살펴보겠습니다.
위의 부분을 참고했을 경우 현재 repository에는 변경사항이 없고, 다수의 commit들이 존재합니다. 그러면 commit 하나를 취소해보도록 하겠습니다.
git reset 162cd5b
위의명령어를 실행하니, 다음과 같은 화면이 나타날 것입니다.
그리고나서, git log --oneline과 git status를 진행해보니, 다음과 같은 화면을 확인할 수 있습니다. 즉, 커밋(commit)은 취소가 되었으나, 그 커밋(commit)과정에서 수정한 파일의 변경사항에 대해서는 수정되지 않은 상태입니다.
저는 위와 변경사항들도 폐기하고 싶어, 이전 포스팅에서 배웠던 checkout 명령어를 통해서, 변경사항을 폐기하도록 하겠습니다.
그리고, 나서 git status / git log --oneline을 입력하시면 다음과 같은 화면이나타날 것이니다.
위에서는 커밋(commit)이 취소되면서, 그 커밋(commit)과정에서 사용된 변경사항에 대해서는 폐기 되지 않았습니다. 그러면 이번에는 커밋(commit)이 취소되면서, 함께 변경사항도 폐기하는 방법에 대해서 알아보도록 하겠습니다.
$ git reset --hard <commit-hash>
위에서와 같이 commit hash을 입력하기에 앞서서, "--hard" 옵션을 넣어주는 것입니다.
그러면 위의 예제를 바탕으로 진행해보도록 하겠습니다.
그리고 나서, 다시한번 git log --oneline 과 git status 입력하여 결과를 확인하였습니다. 이전과 차이가 있음을 알 수 있습니다. 즉, --hard 옵션을 넣음으로, 커밋(commit)취소와 함께 변경사항도 함께 폐기가 됩니다.
2) git revert
git의 경우, 혼자 작업 하는 경우도 있지만, 다수의 사람과 함께 작업을 하는 경우도 매우 많습니다. 그럴 경우 함부로 commit을 취소해버릴 경우, 협업 하는 다른 사람들에게는 이 부분들이 충돌의 소지가 될수도 있고, 다른 다양한 문제를 발생할 수 있습니다. 그래서, 이럴 경우을 대비해서, git revert라는 기능을 사용합니다. 즉, revert는 커밋(commit)을 취소하면서, 별도의 commit을 생성하는 것입니다. 그러면, 먼저 간단한 예제를 생성해보도록 하겠습니다.
먼저, 파일 하나를 수정을 하겠습니다.
그리고 나서, 변경사항이 있음을 확인하고, 이 부분을 stage에 add하고 나서, 바로 commit을 진행하도록 하겠습니다.
그리고 나서, git log --oneline을 이용하여 현재 commit 상황을 확인하도록 하겠습니다. 그러면 다음과 같은 명령어를 사용하도록 하겠습니다.
git revert <commit-hash>
위의 명령어를 실행할 경우, 원래라면 다음과 같이 기본 edit에서 해당 commit 메시지를 입력하는 editor 창이 나타납니다. 여기에서 저장하시면, 위와 같이 revert관련해서 commit이 진행이 될 것입니다.
그리고 나서, git log --oneline을 통해서 현재 커밋(commit)을 확인해보도록 하겠습니다.
기존의 부분들은 그대로 있고, 이 부분에 대해서 수정을 하는 revert 관련 commit이 생성이 됩니다. 이와 같은 방법으로 git revert를 진행할 수 있습니다.
이번 포스팅에서는 [깃, Git] Git 커밋(commit) 취소하기 feat. git reset, git revert라는 주제로 포스팅을 해봤습니다. git관련해서는 대부분의 내용에 대해서 포스팅을 통해서 알아봤습니다. 이제는 web서비스(github)와 함께 하는 부분에 대해서도 포스팅을 진행해보고자 합니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다.
'Development > GIT' 카테고리의 다른 글
[깃, Git] Git 변경사항 스테이징 취소하기 (0) | 2023.12.13 |
---|---|
[깃, Git] Git 변경사항 폐기하기(with Checkout, restore) (0) | 2023.12.11 |
[깃, Git] Git에서 HEAD~를 사용하는 방법 (0) | 2023.12.10 |
[깃, Git] Git 이전 commit 확인 및 되돌아가기: 쉽고 빠른 방법 안내 (0) | 2023.12.06 |
[깃, Git] Git stash 다양한 사용법(apply, 다중 stash) (0) | 2023.12.02 |