2012-02-03 3 views
1

私は完全に最新のローカルレポを持っていると仮定します。さまざまなリモートコミットを使用して、新しいローカルブランチをrebaseするのは安全ですか?

特定のSHAから新しいブランチを作成してから、元のブランチ/ SHAに対して新しいブランチを作成することができますか?

git checkout -b merging_some_commits bfd70a83f5bf3f7fd44422233a82751535428cbd 

git rebase --onto some_other_branch 02979b4e34809d53e5071501046f59ad5c 

git checkout some_other_branch 

git merge mergin_some_commits 

git push origin some_other_branch 

アップデート:私は基本的に02979b...選ぶ桜にしようとしている - some_other_branchbfd70a83...を。 02979b...bfd70a83...の祖先であり、どちらも最近の履歴をsome_other_branchと共有していません。 02979b...の前に10-15コミットがあり、共通の祖先を共有したいと思っています(まだ)。結局、これらの10〜15のコミットもマージする必要があります。

+1

2つのSHAの参照先は... 02979b4e34809d53e5071501046f59ad5c bfd70a83f5bf3f7fd44422233a82751535428cbdの祖先ですか? some_other_branchの祖先ですか? – avh

+0

更新...私はあなたが尋ねる必要があったとしても、これをやりたいとは思わないと思います。 – drstevens

答えて

2

はい、そこにあるものはうまく見えます。あなたの更新内容を説明する必要があります。 @ haydenmuhiが説明したように、あなたのローカルリポジトリには何も "安全"です。あなたがプッシュするとき、重要なことは、あなたが押しているブランチにあるコミットです - 彼らはどこから来たのか、あなたが持っている他のブランチは違いを生みません。限り、後で他の10-15がコミットマージ

は、あなたが、またはsome_other_branch..02979bまたはsome_other_branch..02979bをリベースによってうまく将来的にはどちらか単に02979bまたはbfd70a83をマージすることを行うことができるはず。あなたがそれらをマージする前にまだ少し時間がかかることがあるなら、あなたはまだそれらを少しmroeの流れを保つのを助けるためにsome_other_branchにそれらをrebaseしたいと思うかもしれません。

+0

おかげさまで、他の人のリファクタリングを台無しにするので、まだ029の前にすべてを取ることはできません。もし私ができるなら、私はちょうど 'マージ'を使ったでしょう。 – drstevens

4

コミットがローカルで、ローカルのみの場合は、コミットしても構いません。そのコミットをリモートリポジトリに一度もプッシュしていない限り、リベースを含め、何らかの方法で修正するのは公正なゲームです。子供のコミットが祖先に影響を与えないので、あなたが上にリベースすることは重要ではありません。

+0

私はrebaseを実行し、新しいコミットは作成されませんでした。実際、既存のコミットはsmartgitで履歴を表示すると2回表示されるようになりました(履歴の表示と差分にのみ使用されます)。マージによって新しいコミットが 'merge_come_commits'に作成されます。 – drstevens

+0

お返事ありがとうございます。私はあなたの答えを答えにしていたでしょうが、それでも私の頭の上には部分的に残っていました。 – drstevens

関連する問題