결과 예시
확인 질문 2개(수정 중인 파일도 함께 옮길지, 새 브랜치 이름)가 먼저 왔다. 원격 여부는 status 로 확인돼 묻지 않았고, 강제 푸시나 하드 리셋은 나오지 않았다.
git branch feature/x → 지금 위치를 가리키는 새 브랜치를 만듭니다. 파일은 바뀌지 않습니다. git reset --keep origin/main → main 을 원격과 같은 위치로 되돌립니다. 커밋 3개는 새 브랜치에 남습니다.
--keep 이 거부되면 먼저 stash 하라는 안내까지 붙었다.
Claude에서 실제로 실행해 확인 · 2026-09
왜 이렇게 쓰는가
git 명령어를 chatgpt 에 물을 때 가장 위험한 것은, 상태를 보여 주지 않은 채 "되돌려 줘" 라고만 하는 것입니다. AI는 가장 흔한 상황을 가정하고 답하는데, 그 가정에는 대개 강제 푸시나 하드 리셋이 들어 있습니다. 그대로 실행하면 아직 커밋하지 않은 수정이나 동료의 커밋이 조용히 사라집니다.
맥락 을 두 조각으로 나눠 넣은 이유가 여기 있습니다. 사람이 쓴 상황 설명은 틀릴 수 있습니다. "브랜치를 판 줄 알았다" 는 말 자체가 이미 착각이니까요. 반면 git status 결과는 사실입니다. 두 가지를 함께 주고 출력 형식 의 ①번에서 "제 말이 아니라 status 결과를 근거로" 다시 설명하게 하면, 착각이 먼저 걸러집니다.
되묻기 문단이 안전장치의 절반을 담당합니다. 원격에 올라갔는지, 다른 사람이 같은 브랜치를 쓰는지에 따라 안전한 명령이 완전히 달라지는데, 이 정보는 status 결과만으로는 알 수 없습니다. 질문을 먼저 받으면 위험한 명령을 추천받을 일이 크게 줄어듭니다.
제약 의 세 줄은 각각 다른 사고를 막습니다. 경고 요구는 커밋 취소하는 법을 찾다가 이력을 날리는 일을, 한 줄에 이어 붙이지 말라는 요구는 앞 명령이 실패했는데 뒤 명령이 실행되는 일을, "참고용 다른 방법을 덧붙이지 말라" 는 요구는 여러 방법 중 아무거나 골라 섞어 쓰는 일을 막습니다. 붙여 넣는 자료를 """ 로 감싼 것은 로그에 섞인 커밋 메시지가 지시로 읽히지 않게 하기 위해서입니다.
용어가 낯설면 아하AI에서: prompt, hallucination
나쁜 예와 비교
git 커밋 3개 되돌리고 싶은데 명령어 알려줘
상태를 모르니 AI가 가장 일반적인 답, 즉 하드 리셋과 강제 푸시를 알려 줍니다. 커밋하지 않은 수정이 함께 날아가거나, 이미 원격에 올라간 커밋을 지워 동료의 저장소와 어긋납니다. 명령이 무엇을 바꾸는지 설명이 없어 실행한 뒤에도 무엇이 사라졌는지 모르고, 되돌리려고 또 검색한 명령을 치다 상태가 한 번 더 꼬입니다.
변형
충돌이 나서 멈췄을 때
병합(merge) 도중 충돌이 나서 멈췄습니다. 상황은 아래와 같습니다. 충돌 표시가 있는 파일을 어떤 순서로 처리해야 하는지, 각 단계에서 무엇을 확인해야 하는지 알려 주세요. 지금 상태에서 그만두고 병합 전으로 돌아가는 방법도 함께 알려 주시고, 그때 무엇이 사라지는지 적어 주세요.
상황 설명: """ {{상황 설명}} """
git status 결과: """ {{git status 결과}} """
충돌은 되돌리기보다 순서가 중요합니다. 그만두는 방법을 같이 받아 두면 중간에 더 꼬였을 때 빠져나올 수 있습니다.
명령을 실행하기 전에 확인만 받고 싶을 때
아래 상황에서 제가 실행하려는 명령이 안전한지 먼저 봐 주세요. 명령을 바꿔 주지 말고, 이 명령이 무엇을 바꾸는지 · 되돌릴 수 있는지 · 이 상황에서 위험한 점이 있는지만 알려 주세요. 위험하다면 무엇을 먼저 백업해야 하는지 알려 주세요.
상황 설명: """ {{상황 설명}} """
어디선가 찾은 명령을 그대로 치기 전에 씁니다. 명령을 새로 받는 대신 검토만 맡기면 판단이 내 손에 남습니다.
모델별 주의
명령을 실행하기 전에 작업 폴더를 통째로 복사해 두면 무엇이 잘못되어도 되돌릴 수 있습니다
관련 프롬프트
마지막 수정 2026-09-02 · 잘못된 점이 있나요? 알려 주세요