꼬인 깃 상태 되돌릴 명령어 받기

지금 상태를 알려 주고 안전한 명령만 확인한다

프롬프트 · 변수 2개

저는 깃(git)을 터미널 명령어로만 쓰고 있고, 지금 상태가 꼬여서 되돌리고 싶습니다. 무슨 일이 있었는지는 아래에 적었고, 지금 상태는 git status 결과를 그대로 붙여 두었습니다.

명령어를 알려 주기 전에, 잘못 실행하면 되돌릴 수 없는 부분이 있는지 확인이 필요하면 먼저 질문해 주세요. 질문은 최대 3개로 해 주세요. 특히 원격 저장소에 이미 올라간 커밋인지, 다른 사람이 같은 브랜치를 쓰고 있는지를 확인해 주세요.

답은 이 순서로 해 주세요. ① 지금 상태를 제 말이 아니라 git status 결과를 근거로 한 문단으로 다시 설명하고, 제가 잘못 이해한 부분이 있으면 짚어 주기 ② 실행할 명령을 한 줄씩, 각 줄 바로 아래에 그 명령이 무엇을 바꾸는지 한 문장 ③ 실행한 뒤 결과를 확인할 명령 ④ 원하는 대로 되지 않았을 때 되돌리는 방법.

이력이나 남의 작업을 지울 수 있는 명령은 다른 방법이 없을 때만 써 주시고, 쓸 경우에는 무엇이 사라지는지 먼저 경고해 주세요. 명령 여러 개를 한 줄에 이어 붙이지 말아 주세요. 제 상태에서 실제로 필요한 명령만 주시고, 참고용으로 다른 방법을 덧붙이지 말아 주세요.

상황 설명: """ {{상황 설명}} """

git status 결과: """ {{git status 결과}} """

복사한 뒤 여기에 붙여 넣으세요 · ChatGPT·Claude는 프롬프트를 실은 채 열립니다 ChatGPT에서 열기 ↗Claude에서 열기 ↗Gemini에서 열기 ↗뤼튼에서 열기 ↗ 빌더에서 고치기 수업용 카드 이미지 받기

결과 예시

확인 질문 2개(수정 중인 파일도 함께 옮길지, 새 브랜치 이름)가 먼저 왔다. 원격 여부는 status 로 확인돼 묻지 않았고, 강제 푸시나 하드 리셋은 나오지 않았다.

git branch feature/x → 지금 위치를 가리키는 새 브랜치를 만듭니다. 파일은 바뀌지 않습니다. git reset --keep origin/main → main 을 원격과 같은 위치로 되돌립니다. 커밋 3개는 새 브랜치에 남습니다.

--keep 이 거부되면 먼저 stash 하라는 안내까지 붙었다.

Claude에서 실제로 실행해 확인 · 2026-09

왜 이렇게 쓰는가

맥락
저는 깃(git)을 터미널 명령어로만 쓰고 있고, 지금 상태가 꼬여서 되돌리고 싶습니다. 무슨 일이 있었는지는 아래에 적었고, 지금 상태는 git status 결과를 그대로 붙여 두었습니다.
되묻기
명령어를 알려 주기 전에, 잘못 실행하면 되돌릴 수 없는 부분이 있는지 확인이 필요하면 먼저 질문해 주세요. 질문은 최대 3개로 해 주세요. 특히 원격 저장소에 이미 올라간 커밋인지, 다른 사람이 같은 브랜치를 쓰고 있는지를 확인해 주세요.
형식
답은 이 순서로 해 주세요. ① 지금 상태를 제 말이 아니라 git status 결과를 근거로 한 문단으로 다시 설명하고, 제가 잘못 이해한 부분이 있으면 짚어 주기 ② 실행할 명령을 한 줄씩, 각 줄 바로 아래에 그 명령이 무엇을 바꾸는지 한 문장 ③ 실행한 뒤 결과를 확인할 명령 ④ 원하는 대로 되지 않았을 때 되돌리는 방법.
제약
이력이나 남의 작업을 지울 수 있는 명령은 다른 방법이 없을 때만 써 주시고, 쓸 경우에는 무엇이 사라지는지 먼저 경고해 주세요. 명령 여러 개를 한 줄에 이어 붙이지 말아 주세요. 제 상태에서 실제로 필요한 명령만 주시고, 참고용으로 다른 방법을 덧붙이지 말아 주세요.
입력 자료
상황 설명: """ {{상황 설명}} """
입력 자료
git status 결과: """ {{git status 결과}} """

git 명령어를 chatgpt 에 물을 때 가장 위험한 것은, 상태를 보여 주지 않은 채 "되돌려 줘" 라고만 하는 것입니다. AI는 가장 흔한 상황을 가정하고 답하는데, 그 가정에는 대개 강제 푸시나 하드 리셋이 들어 있습니다. 그대로 실행하면 아직 커밋하지 않은 수정이나 동료의 커밋이 조용히 사라집니다.

맥락 을 두 조각으로 나눠 넣은 이유가 여기 있습니다. 사람이 쓴 상황 설명은 틀릴 수 있습니다. "브랜치를 판 줄 알았다" 는 말 자체가 이미 착각이니까요. 반면 git status 결과는 사실입니다. 두 가지를 함께 주고 출력 형식 의 ①번에서 "제 말이 아니라 status 결과를 근거로" 다시 설명하게 하면, 착각이 먼저 걸러집니다.

되묻기 문단이 안전장치의 절반을 담당합니다. 원격에 올라갔는지, 다른 사람이 같은 브랜치를 쓰는지에 따라 안전한 명령이 완전히 달라지는데, 이 정보는 status 결과만으로는 알 수 없습니다. 질문을 먼저 받으면 위험한 명령을 추천받을 일이 크게 줄어듭니다.

제약 의 세 줄은 각각 다른 사고를 막습니다. 경고 요구는 커밋 취소하는 법을 찾다가 이력을 날리는 일을, 한 줄에 이어 붙이지 말라는 요구는 앞 명령이 실패했는데 뒤 명령이 실행되는 일을, "참고용 다른 방법을 덧붙이지 말라" 는 요구는 여러 방법 중 아무거나 골라 섞어 쓰는 일을 막습니다. 붙여 넣는 자료를 """ 로 감싼 것은 로그에 섞인 커밋 메시지가 지시로 읽히지 않게 하기 위해서입니다.

용어가 낯설면 아하AI에서: prompt, hallucination

나쁜 예와 비교

흔한 나쁜 예

git 커밋 3개 되돌리고 싶은데 명령어 알려줘

상태를 모르니 AI가 가장 일반적인 답, 즉 하드 리셋과 강제 푸시를 알려 줍니다. 커밋하지 않은 수정이 함께 날아가거나, 이미 원격에 올라간 커밋을 지워 동료의 저장소와 어긋납니다. 명령이 무엇을 바꾸는지 설명이 없어 실행한 뒤에도 무엇이 사라졌는지 모르고, 되돌리려고 또 검색한 명령을 치다 상태가 한 번 더 꼬입니다.

변형

충돌이 나서 멈췄을 때

충돌이 나서 멈췄을 때

병합(merge) 도중 충돌이 나서 멈췄습니다. 상황은 아래와 같습니다. 충돌 표시가 있는 파일을 어떤 순서로 처리해야 하는지, 각 단계에서 무엇을 확인해야 하는지 알려 주세요. 지금 상태에서 그만두고 병합 전으로 돌아가는 방법도 함께 알려 주시고, 그때 무엇이 사라지는지 적어 주세요.

상황 설명: """ {{상황 설명}} """

git status 결과: """ {{git status 결과}} """

충돌은 되돌리기보다 순서가 중요합니다. 그만두는 방법을 같이 받아 두면 중간에 더 꼬였을 때 빠져나올 수 있습니다.

명령을 실행하기 전에 확인만 받고 싶을 때

명령을 실행하기 전에 확인만 받고 싶을 때

아래 상황에서 제가 실행하려는 명령이 안전한지 먼저 봐 주세요. 명령을 바꿔 주지 말고, 이 명령이 무엇을 바꾸는지 · 되돌릴 수 있는지 · 이 상황에서 위험한 점이 있는지만 알려 주세요. 위험하다면 무엇을 먼저 백업해야 하는지 알려 주세요.

상황 설명: """ {{상황 설명}} """

어디선가 찾은 명령을 그대로 치기 전에 씁니다. 명령을 새로 받는 대신 검토만 맡기면 판단이 내 손에 남습니다.

모델별 주의

명령을 실행하기 전에 작업 폴더를 통째로 복사해 두면 무엇이 잘못되어도 되돌릴 수 있습니다

관련 프롬프트

마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요