私はGithubからリポジトリをフェッチし、過去のタグを元に戻し、すべての履歴を削除して別のリモートにプッシュしようとしています。すべてのコミットログを削除する以外は、以下ですべてを行うことができます。何が欠けていますか?
git clone https://github.com/user/user-repo.git
cd user-repo
git reset --hard tags/v2.0
git remote add stash ssh://git@myserver:7999/myproject/user-repo.git
git Push --force stash master
あなたが欲しいのは新しいもののようなレポだと思ったので、.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://git@myserver:7999/myproject/user-repo.git
git Push --force stash master
git merge --squash
を使用すると、すべてのコミットを1つにまとめてプッシュできます。
基本的に、すべてのコミットを1つのコミットにロールアップすることについて話しているのですか、それともすべてのコミットを保持して実際のコミットメッセージを切り捨てたいですか?
コミットを1つにまとめる(必要に応じて、最後のコミットメッセージを切り捨てる)には、インタラクティブなリベースを使用できます。
git rebase -i <whatever>
実際のコミットメッセージを切り捨て、すべてのコミットを保持するには、--msg-filter
オプションをgit filter-branch
に使用します。