質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

2回答

1276閲覧

別ブランチから切ったブランチをmasterから切ったことにしたい

MH00214

総合スコア53

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2020/10/27 02:07

現状

  • masterブランチからbase_branchを切っていて、そこからさらにdevelop_branchを切って作業をしていた

(もともと大きな開発になる予定だったのでbase_branchから色々生やして開発する想定でした)

  • 事情が変わり、develop_branchだけを先にリリースすることになった

※base_branchには他のブランチはまだ何もmergeされていない状態です。

やりたいこと

  • commitなどの履歴を全て引き継いだまま develop_branchがmasterから分岐しているようにしたいです。

git checkout -b new_branch origin/develop_branch

でもできるのかな?と思っているんですが、より良い方法があったら教えていただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/10/27 02:13

いまのところ、masterとbase_branchの先頭は同じコミット、ということで間違いないですか?
MH00214

2020/10/27 02:20

はい、その認識です。 masterブランチで git pullして base_branchで git rebase masterして 最新のmasterを反映した状態になっています。
guest

回答2

0

Gitにあるデータはコミット同士の関係性だけで、「ブランチ」も特定のコミットを指しているだけの存在です(「どこのブランチから切った」という情報は基本的に残りません)。

ということで、masterからコミットをたどってdevelop_branchにたどり着けるのであれば、それは「develop_branchがmasterから分岐している」のと本質的に何も変わりません。

投稿2020/10/27 02:18

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

確認ですが、master から base_branch を切っていて、base_branch に何一つマージしていないとしたら、base_branch から派生した develop_branch は、何もしなくても既に master から派生した状態になっていませんか?
その状況でしたら、何もする必要はありません。


もし、base_branch に何らかのコミットが積まれていて、そこから develop_branch が派生しているのであれば、履歴の書き換え操作が必要なので、base_branch の内容次第では盛大にコンフリクトを起こす可能性があることは認識して下さい。
develop_branch にチェックアウトしている状態かつワーキングが完全にクリーンである前提で、以下のコマンドでコミットログの付け替えをエミュレートできます。

shell

1git rebase --onto master base_branch

投稿2020/10/27 02:16

tamoto

総合スコア4252

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MH00214

2020/10/27 02:53

こんにちは。早速のご回答ありがとうございます。 > 確認ですが、master から base_branch を切っていて、base_branch に何一つマージしていないとしたら、base_branch から派生した develop_branch は、何もしなくても既に master から派生した状態になっていませんか? これについてはそうですね、、masterから派生したことになっています。私が気になっていたのは、まだ何もマージしていないbase_branchからdevelop_branchを生やした(かつ、まだmergeしていないけど、develop_branchとは別のブランチ(develop_another_branch)がもう一つ存在している)という状態だったので、develop_branchをmasterにmergeした時に、develop_another_branchも一緒に連れて行きたいくないので、確実な方法はなんだろうか…?と思いまして今回質問させていただきました。 base_branchに何もmergeしていない以上、教えていただいたコマンドでmasterから生えていることにできるという認識で間違い無いでしょうか?
tamoto

2020/10/27 04:36

いえ、master から派生したことになってるなら「何も」する必要がないです。 仮に develop_branch を master にマージしたところで、別に分かれて伸びている develop_another_branch は全く無関係のはずですが。 もう一度、その状態は既にあなたの考える「理想的な状態」なので、何もする必要はありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問