最近、hg リポジトリを git にクローンしたので、github に投稿できます。多くの電子メール アドレスが間違っているため、誰かがこのプロジェクトをフォークする前に、git rebase を使用してそれらを変更したいと考えています。それらを変更した場合、完全にリベースされた新しいリポジトリを github にプッシュするにはどうすればよいですか? リベースしてからでき git push
ますか?最初にプロジェクトを削除する必要がありますか?
3 に答える
3
ほとんど。古い履歴を上書きするには、git push -f
(または)を使用する必要があります。--force
まったく別の注意点として、なぜ「使用するgit rebase
」のではなく、コミッターの電子メールアドレスを変更するのgit filter-branch --env-filter
でしょうか。
于 2010-08-31T19:27:12.467 に答える
1
Jörg の投稿にコメントするほどの評判はまだありませんが、github にはhttp://help.github.com/ching-author-info/git filter-branch --env-filter
で同じことを行うのに役立つ優れたシェル スクリプトがあります。これは、Jörg の投稿に対する他のコメント投稿者が話していることの例です。これは私にとってはうまくいきました。
于 2011-04-02T19:21:45.657 に答える
0
それを行う1つの方法は次のとおりです。
- リポジトリの開始以降のすべてのパッチを含む .mbox ファイルを作成します。
git format-patch --stdout --root > repo_history.mbox
- ファイルを編集し、
repo_history.mbox
必要に応じてすべての電子メール アドレスを変更します。それは同じくらい簡単かもしれませんperl -pi~ -e's/oldemail\@host\.org/newemail\@newhost\.com/gi' repo_history.mbox
- 新しいレポを作成します。
mkdir ~/newrepo; cd ~/newrepo; git init
- 以前の mbox の変更を新しいリポジトリに適用します。
git am /path/to/repo_history.mbox
私のレポでテストしたところ、上記のようにうまくいったようです。詳細を知りたい場合はお知らせください。
重要:これは、そのリポジトリを公開する前にのみ行う必要があり、他の人がすでにリポジトリからプルした後ではありません-あなたの質問はすでにそれを述べているようですが、これはこれの重要性を繰り返すだけです:)
于 2010-08-31T18:30:37.317 に答える