2013-02-19 4 views
15

Github에서 repo를 가져 오려고합니다. 이전에 태그를 되돌리고, 모든 기록을 지우고 다른 원격지로 밀어 넣으려고합니다. 모든 커밋 로그를 삭제하는 것을 제외하고는 모든 것을 다음과 같이 할 수 있습니다. 내가 누락 된 것?Git 커밋 내역 모두 삭제

git clone https://github.com/user/user-repo.git 
cd user-repo 
git reset --hard tags/v2.0 
git remote add stash ssh://[email protected]:7999/myproject/user-repo.git 
git push --force stash master 

답변

33

나는 당신이 원하는 것을 repo라고 생각 했으므로 .git/ 디렉토리를 삭제하고 다시 초기화하는 것이 더 간단 할 것입니다.

git clone https://github.com/user/user-repo.git 
cd user-repo 
git reset --hard tags/v2.0 

rm -rf .git/ 
git init 
git add . 
git commit -m 'first commit' 

git remote add stash ssh://[email protected]:7999/myproject/user-repo.git 
git push --force stash master 
+0

감사합니다. 나는 똑같은 일을했다 :) – noway

+0

이것은 대단히 나를 도왔다! 감사합니다 – breezy

+0

이것은 내가 원하는 것입니다. – Shaowu

3

당신은 모든 일에 커밋 스쿼시 git merge --squash를 사용하여 다음을 누릅니다.

1

기본적으로 모든 커밋을 하나의 커밋으로 롤백하는 것에 대해 이야기하고 있습니까? 아니면 모든 커밋을 유지하면서 실제로 커밋 메시지를 잘라내시겠습니까?

하나에 커밋 스쿼시 (최종 커밋 메시지를 잘라, 당신이 원하는 경우), 대화 형 rebase에 사용할 수 있습니다

git rebase -i <whatever> 

실제는 커밋 메시지를 잘라야하지만 커밋을 모두 유지하기를, --msg-filter 옵션을 git filter-branch에 사용하십시오.