25

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
4

3 に答える 3

55

あなたが望むのは新しいレポのようなレポだと思ったので、.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
于 2013-02-20T03:28:46.307 に答える
3

を使用git merge --squashして、すべてのコミットを1つにまとめてから、プッシュすることができます。

于 2013-02-19T23:51:44.153 に答える
1

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

コミットを1つに潰す(そして必要に応じて最後のコミットメッセージを切り捨てる)には、インタラクティブなリベースを使用できます。

git rebase -i <whatever>

実際のコミットメッセージを切り捨てて、すべてのコミットを保持するには、--msg-filterオプションを使用しますgit filter-branch

于 2013-02-19T23:51:52.207 に答える