스택큐힙리스트

Git에서 로컬 커밋을 삭제하세요. 본문

카테고리 없음

Git에서 로컬 커밋을 삭제하세요.

스택큐힙리스트 2024. 1. 18. 13:53
반응형

안 좋은 cherry-picking으로 인해 저의 로컬 Git 저장소는 현재 원본보다 5개의 커밋을 앞선 상태이며, 좋은 상태가 아닙니다. 이 모든 커밋을 지우고 다시 시작하고 싶습니다.


분명히 작업 디렉토리를 삭제하고 다시 클론하는 것도 가능하지만, GitHub에서 모든 것을 다시 다운로드하는 것은 너무 과대한 것 같고, 제 시간의 낭비입니다.


아마도 git revert가 필요한 것 같지만, 코드 자체를 올바른 상태로 되돌리더라도 원본보다 10개(또는 6개)의 커밋이 추가되는 것을 원하지 않습니다. 방금 지난 반 시간이 사라진 것처럼 하고 싶습니다.


이를 위한 간단한 명령어가 있는지 알 수 있을까요? 이는 명백한 사용 사례인 것 같지만, 이에 대한 예제를 찾을 수 없습니다.


이 질문은 명확히 커밋에 관한 것이며, 다음과 같지 않습니다:



  • 추적되지 않은 파일

  • 스테이징되지 않은 변경 사항

  • 스테이징되었지만 커밋되지 않은 변경 사항

답변 1

만약 당신의 추가 커밋이 오직 당신에게만 보이는 것이라면, 당신은 단순히 git reset --hard origin/<branch_name>을(를) 수행하여 원점으로 돌아갈 수 있습니다. 이렇게 하면 리포지토리의 상태가 이전 커밋으로 재설정되며 모든 로컬 변경 사항이 삭제됩니다.


git revert를 수행하면 모든 사람들의 히스토리를 안정적으로 유지하는 방식으로 이전 커밋을 제거하기 위한 새로운 커밋이 생성됩니다.

답변 2

Git으로 로컬 커밋을 삭제해보세요
Git은 분산 버전 관리 시스템으로, 소스 코드 변경 사항을 추적하고 내용을 관리하는 데 사용됩니다. 때로는 로컬에서 작업하다 보면 실수로 잘못된 커밋을 만들 경우가 있을 수 있습니다. 그럴 때는 로컬 커밋을 삭제하는 방법을 알고 있으면 유용합니다. 이 기사에서는 Git을 사용하여 로컬 커밋을 삭제하는 방법에 대해 안내드리겠습니다.
로컬 커밋을 삭제하는 방법 중 가장 간단한 방법은 'git reset' 명령어를 사용하는 것입니다. 이 명령어를 사용하면 특정 커밋으로 돌아가는 것이 아니라, 마지막 커밋부터 원하는 지점까지 역으로 돌아갈 수 있습니다. 이런식으로 로컬 커밋을 삭제하고 싶다면, 다음 명령어를 입력하세요:
```
git reset
```
여기서 ``은 삭제하려는 커밋의 식별자입니다. 삭제하려는 커밋 이후의 모든 변경 사항은 사라지며, 이전 커밋부터 다시 작업을 시작할 수 있습니다.
또 다른 방법은 'git rebase' 명령어를 사용하는 것입니다. 이 방법은 커밋들을 재정렬하는 기능을 제공하여 특정 커밋 이후의 모든 커밋을 삭제할 수 있습니다. 다음 명령어를 사용하여 로컬 커밋을 삭제해보세요:
```
git rebase --onto ^
```
여기서 ``은 삭제하려는 커밋의 식별자입니다. 위의 명령어를 실행하면 `` 이후의 모든 커밋이 삭제됩니다.
위에서 설명한 두 가지 방법은 로컬에서만 작동합니다. 만약 이미 원격 저장소에 푸시한 커밋을 삭제하고 싶다면, 'git push --force' 명령어를 사용할 수 있습니다. 이 명령어는 원격 저장소의 커밋을 덮어쓰는 역할을 합니다. 하지만, 이 명령어는 신중하게 사용해야 합니다. 다른 사람과 협업하는 경우에는 주의해야 하며, 덮어쓴 커밋은 복구할 수 없다는 점을 알아두어야 합니다.
결론적으로, Git을 사용하여 로컬 커밋을 삭제하는 방법에 대해 알아보았습니다. 'git reset'이나 'git rebase' 명령어를 사용하여 원하는 커밋 이후의 변경 사항을 삭제할 수 있습니다. 다만, 신중하게 사용해야 하며 원격 저장소에 푸시한 커밋을 삭제할 때는 요령을 잘 따라야 합니다. Git을 잘 활용하여 프로젝트를 효과적으로 관리하는 데 도움이 되기를 바랍니다.

반응형
Comments