배경 : 내가 특정 A 브랜치에서 중간이상 규모급 수정을 한참 하고 있는데, 운영건 급하다고 뭐 바꿔달라고 요청이 왔음.. 그건 반영하면 안되는 소스다보니.. 특정 소스만 반영해서 빌드해야하는 상황.
근데 지금 내가 운영하는 프로젝트는 WAR 파일을 내 IDE에서 직접 빌드해서 서버로 직접 업로드 하다보니,, 개발중인 소스는 무조건 1번은 commit은 해야하는 상황임
git commit 한거를 바로 롤백하는 방법은?
내용
==> 나는 이중 2번째인 2번으로 아주 깔끔하게 잘 되었따..
git reset ... soft 로..
(아래내용 : chatGPT 가 만들어줌)
Git에서 커밋을 롤백하는 방법은 상황에 따라 여러 가지가 있습니다. 아래는 각각의 경우에 맞는 방법을 설명합니다.
1. 마지막 커밋을 취소하고 수정 없이 되돌리기
- 커밋한 내용을 완전히 취소하고 작업 트리에 다시 반영하지 않으려면 다음 명령을 사용하세요:이 명령은 마지막 커밋을 삭제하고, 그에 대한 변경 사항도 모두 되돌립니다. 되돌린 후에는 해당 커밋과 그 변경사항이 사라지므로 주의해야 합니다.
-
bash코드 복사git reset --hard HEAD^
2. 마지막 커밋을 수정 없이 취소하고 변경 사항을 유지하기
- 커밋을 취소하지만 변경 사항을 작업 트리에 남겨두려면 다음 명령을 사용하세요:이 명령은 마지막 커밋만 삭제하고, 그 변경 사항을 스테이징(인덱스) 상태로 둡니다. 커밋은 사라지지만 파일은 변경된 상태로 남아 있어 다시 커밋할 수 있습니다.
-
bash코드 복사git reset --soft HEAD^
3. 원격 저장소에 푸시한 커밋을 되돌리기
- 이미 원격 저장소에 푸시한 커밋을 되돌려야 한다면, 먼저 로컬에서 커밋을 취소하고, 그 후에 강제로 푸시해야 합니다:이 명령은 강제로 푸시하는 것이므로 주의해야 합니다. 다른 사용자가 해당 커밋을 가져갔다면 문제가 발생할 수 있습니다.
-
bash코드 복사git reset --hard HEAD^ git push origin +브랜치명
4. 특정 커밋을 롤백하기 (중간 커밋 롤백)
- 중간에 있는 특정 커밋만 롤백하고 싶다면 revert 명령을 사용할 수 있습니다:이 명령은 해당 커밋의 변경사항을 무효화하는 새로운 커밋을 생성합니다. 기존의 기록은 남기고 롤백하는 방법입니다.
-
bash코드 복사git revert <커밋 해시>
5. 여러 커밋 롤백하기
- 여러 커밋을 롤백하려면 범위를 지정하여 리셋할 수 있습니다:이 명령은 지정한 커밋부터 그 이후의 커밋들을 모두 삭제하고, 해당 시점으로 돌아갑니다.
-
bash코드 복사git reset --hard <커밋 해시>
중요한 점
- git reset --hard 명령은 되돌리면 변경 사항이 영구히 삭제되므로 주의해서 사용해야 합니다.
- 되돌리기 전에 중요한 변경 사항은 백업하거나 복사해 두는 것이 좋습니다.
원하는 롤백 방식이 무엇인지에 따라 위 방법 중 하나를 사용하시면 됩니다.
728x90
'기타 > 01.Git(GitLab)' 카테고리의 다른 글
[Github] unable to access 'https://github.com/*********/': SSL certificate problem: self signed certificate in certificate chain (1) | 2024.10.11 |
---|---|
[Github] github 레파지토리 생성 후 소스 올리기 (1) | 2024.10.07 |
[GitLab] 콘솔에서 소스 merge 하기 (0) | 2024.05.13 |
[GitLab] Web 콘솔화면 에서 신규 branch 생성 (0) | 2024.04.09 |
[Git] Git Fetch와 Git Pull 의 차이점 (2) | 2024.01.26 |