스택큐힙리스트

Git에서 지역 커밋 버리기 본문

카테고리 없음

Git에서 지역 커밋 버리기

스택큐힙리스트 2023. 3. 23. 19:29
반응형

악의적으로 선택된 체리 피킹으로 인해 내 로컬 Git 저장소는 현재 원본보다 5개의 커밋 앞서 있으며 좋은 상태가 아닙니다. 나는 모든 이러한 커밋을 제거하고 다시 시작하고 싶습니다.

분명히, 내 작업 디렉토리를 삭제하고 다시 클론하는 것이 해결책이 될 것이다. 그러나 GitHub에서 모든 것을 다시 다운로드하는 것은 과잉하고 시간적으로 좋지 않은 일이다.

어쩌면 git revert이 필요할 수도 있겠지만, origin으로부터 10개 혹은 6개 커밋이 더 발생하는 것은 원치 않습니다. 코드 자체를 바로된 상태로 만들어도 그렇게 할 의도는 없습니다. 마지막 반 시간은 일어나지 않은 것처럼 하고 싶습니다.

이 작업을 수행 할 수있는 간단한 명령이 있습니까? 이것은 명백한 사용 사례처럼 보이지만 그에 대한 예제를 찾을 수 없습니다.

이 질문은 특정하게 커밋에 대한 것입니다. 다른 것은 아닙니다.

추적되지 않은 파일들

스테이징하지 않은 변경 사항

단계별로 준비된, 하지만 커밋되지 않은 변경 사항

답변 1

만약 당신의 초과 커밋들이 오직 당신에게만 보인다면, 당신은 단순히

git reset --hard origin/

를 입력하여 원점으로 돌아갈 수 있습니다. 이렇게 하면 저장소의 상태가 이전 커밋으로 재설정되며, 모든 로컬 변경 사항이 삭제됩니다.

git revert를 수행하면 모두의 히스토리를 유지하는 방식으로 이전 커밋을 제거하는 새로운 커밋이 생성됩니다.

답변 2

Git에서 로컬 커밋을 삭제하는 방법

Git은 분산 버전 관리 시스템으로, 개발자가 코드를 효과적으로 관리하고 협업하는 데에 매우 유용합니다. 그러나 때로는 우리가 실수하거나 잘못된 커밋을 했을 때 이를 되돌릴 필요가 있을 수 있습니다. 이 때, 로컬 커밋을 삭제하는 방법이 필요합니다.

Git에서 로컬 커밋을 삭제하는 방법은 간단합니다. 다른 참여자들과 공유한 커밋이 아니라 로컬 저장소에만 있는 커밋을 삭제한다는 것이 중요합니다. 이를 위해서는 git reset 명령어를 사용하여 이전의 커밋으로 되돌립니다.

이제, git reset 명령어를 사용하여 가장 최근 커밋을 취소하고 그 이전 커밋으로 이동하겠습니다. 다음과 같은 명령어를 입력합니다.

$ git reset HEAD~

위 명령을 실행하게 되면, 가장 최근의 커밋은 취소되고, 이전 커밋으로 돌아가게 됩니다. 만약 이 명령을 실행한 후, 이전 커밋을 수정하던 중 다른 변경을 추가하고 싶다면, 다음 명령으로 이전 커밋을 다시 스테이징합니다.

$ git add .

그리고 이전 수정을 커밋합니다.

$ git commit -c ORIG_HEAD

이렇게 하면 이전 커밋에서 새로운 변경 사항을 추가한 것이 됩니다.

커밋을 삭제하는 것은 잘못된 커밋을 되돌리는 데 매우 유용합니다. 하지만 이를 사용하여 예전 커밋을 삭제하면 안 됩니다. 이전 커밋을 삭제하면, 그 이후 커밋들은 영향을 받아 변경되기 때문입니다. 따라서 로컬 저장소에서만 사용해야 합니다.

마지막으로, Git에서 로컬 커밋을 삭제하는 방법은 간단하지만, 이를 신중하게 사용해야 합니다. 우리는 다른 사용자들과 협업하거나 프로젝트를 관리할 때, 코드를 보호하고 안정성을 유지해야 합니다. 따라서 올바르게 사용될 때만 이 기능을 사용하도록 합시다.

반응형
Comments