2010-11-28 9 views
1

私はテストGITブランチでリベースをしました。リベースは次の2つの理由で行われました。#1:親git-svnトランクの変更を統合する。 #2:他の開発者にコードを渡すための準備として、私のローカル履歴を整理する。ブランチでリベースした後、そのリベースされたブランチと一致するようにマスターを更新する方法は?

私はテストブランチを持っています。すべてのテストが合格しています。今、私はマスターをテストブランチのように見せたいと思っています。

これを行うにはどのような方法が良いですか?もしマスターが既に存在していなければ、私はちょうどgit cloneですが、既存のブランチを強制的にanohter(履歴を含む)のように見せる別の良い方法がありますか?

答えて

4

はブランチを削除し、あなたはそれが仕事をしたい場所にそれを再作成すると思います、マージ、ですが、それはあなたのreflogsがかかります - ブランチが過去に指摘している場所の記録を。

# if you want the branch checked out: 
git checkout master 
git reset --hard <other-branch> 

# or, if it's not checked out: 
git branch -f master <other-branch> 
4

別の(履歴を含む)ようにブランチを作成する適切な方法は、新しいブランチを作成することです。

masterブランチはちょうど別のブランチです(gitは新しいリポジトリの初期化時にデフォルトに設定されますが、独自のデフォルトブランチを自由に設定できます)。

私が正しく理解したら、masterブランチを削除し、testブランチを使用してmasterという新しいブランチを作成してください。

+1

私はこれがまったく正しい方法ではないと思います。それはあなたのreflogsを要します。削除して再作成せず、リセットするだけです。 'git checkout master; git reset --hard 'を実行します。または、チェックアウトしたくない場合は、 'git branch -f master 'としてください。 – Cascabel

+0

@ Jefromi - これは正解のように聞こえる...あなたがスタンドアロンの回答にコメントを壊したいのであれば、それを受け入れるだろう! :-) –

0

私の仕事の枝は、私のマスターブランチにマージされています(これには私の頭文字がついています)。それから私はそのマスターをプッシュし、ワンコミッターはそれを見直して実際のマスターにマージします。

はそう答えは、私は

関連する問題