2013-02-19 19 views
15

Githubからリポジトリを取得しようとしています。過去にタグを元に戻し、すべての履歴を削除して別のリモートにプッシュします。すべてのコミットログを削除する以外は、以下ですべてを実行できます。私は何が欠けているのですか?すべての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

私はあなたが望むのは新しいもののようなレポだと思ったので、.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つに縮小してから押し込むことができます。

1

基本的に、すべてのコミットを1つのコミットにロールアップすることについて話していますか、またはすべてのコミットを保持したいが実際のコミットメッセージを切り捨てたいのですか?

一つにコミットスカッシュ(そして、あなたがしたい場合は、最後のコミットメッセージを切り捨てる)するには、対話的なリベース使用することができます。実際のコミットメッセージを切り捨てるが、コミットのすべてを保持するには

git rebase -i <whatever> 

を、 --msg-filterオプションをgit filter-branchに使用してください。

関連する問題