2012-12-27 5 views
0

이전 커밋을 모두 제거하고 최신 커밋 만 유지함으로써 커밋 내역을 정리하고 싶습니다. 어떻게해야합니까? 나는 시도했다Git에서 최신 커밋을 제외한 모든 커밋을 제거하는 방법?

git rebase -i. 그러나 그것은 내가 머리를 떼어내는 것을 끝내는 피로 끝나는 것처럼 보인다. git prune --expire는 어느 쪽도 작용하지 않는 것처럼 보인다.

그래서 1에서 10까지 커밋하면 지금 나와 함께 10 번째 것을 유지하고 싶습니다. 이것은 모두 지역 정보입니다. 그래야하는 것은 나는 단지 10

+0

왜 투표가 실패합니까? –

+0

당신은 당신이 한 일과 결과가 무엇인지를 설명하지 않습니다. "피로 끝나는 것"과 "효과가없는 것"은 문제 설명이 아닙니다. – melpomene

+0

@melpomene 내가 한 일은 분명히 내가 역사에서 모든 이전의 커밋을 삭제하고 싶다고 썼다. 나는 gitbash를 열었다. 내가 말했던 두 가지 명령을 시도해 보았다.이 일을하기로되어 있는데, 그들이 그것을하고 있지 않다는 것을 발견했다. 나는 그들을 기대했다. .. .gogled ... 나의 머리를 긁었다. .. 하루 동안의 나의 저장소 .torched. 그리고 마침내 질문했다. –

답변

3

절차는 the git book에 설명되어 밀고하고 밀어하기로 결정 때

부수는

그것은 커밋의 시리즈를 취할 수도를 커밋을하고 아래 스쿼시 대화 형 리베이스 도구로 단일 커밋으로 스크립트는 REBASE 메시지에 도움이되는 지침을두고 :

# 
# Commands: 
# p, pick = use commit 
# e, edit = use commit, but stop for amending 
# s, squash = use commit, but meld into previous commit 
# 
# If you remove a line here THAT COMMIT WILL BE LOST. 
# However, if you remove everything, the rebase will be aborted. 
# 

만약, 대신, 당신이 망할 놈이 바로 앞에 그 변화와 변경을 모두 적용 "스쿼시"지정 "선택"또는 "편집"의 커밋 메시지를 병합합니다. 단일이 세 커밋에서 커밋 만들고 싶어한다면, 당신은이 같은 스크립트 보이게 :

pick f7f3f6d changed my name a bit 
squash 310154e updated README formatting and added blame 
squash a5f4a0d added cat-file 

당신이 seceral 단지 하나에 커밋 스쿼시 싶어하지만 실제로 커밋을 제거하지 않으면 스크립트에서 수행 할 작업을 수행하십시오.

# If you remove a line here THAT COMMIT WILL BE LOST. 
+0

예를 들어 나는 100 개의 커밋을 가지고 있고 하나의 커밋 만 선택하여 다른 커밋을 삭제해야한다고 말합니다. 이걸 도와 줄 수있어? – Aravind

관련 문제