#とある長生きしている製品のソースを、最近のバージョンから git で管理し始めました。
しかし、後からもう少し前のバージョンからも管理したくなってしまいました。
今のリポジトリの開始点の前に、過去のソースを挿入するなんてことが出来るのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
途中(2のところ)までyumetodoさんと同じなのですが、
-
新しい孤立した(--orphan)branchを切ってcheckoutする
-
真に最も古いファイルがある状態でそれをcommitする
-
masterをcheckoutしてrebase ontoする
git rebase --onto (orphanのブランチ) --root -
コンフリクトを修正する (git checkout --theirs . でほぼいけるはず)
-
git rebase --continue
きちんとバックアップを取ったうえでお試しください
投稿2019/11/21 01:46
総合スコア4794
0
ベストアンサー
git rebaseを駆使することで不可能ではありませんが、途方も無い苦行に見舞われるでしょう。
多分流れは
- 新しい**孤立した(--orphan)**branchを切ってcheckoutする
- 真に最も古いファイルがある状態でそれをcommitする
- もともとの開始commitをcherry-pickする。conflictしたら頑張る。
- 残りをgit rebase -iで頑張って持ってくる。
になりますが。
ちなみにすべてのcommit hashが変わります(当然
3のところで、もともとの開始commitを merge したのでは駄目なのでしょうか。
そこでconflictを直した後、HEADをmergeという手順は?
現時点での開始commitをA、真の開始commitをB、現在の最新のcommitをHとし、おっしゃるようにマージした場合、
A←....←H←M B←────────────┘
のようなツリーになりますよね?私は
B←A'←...←H'
のようなツリーがほしいのだと解釈していました。
投稿2019/11/14 12:09
編集2019/11/20 09:53総合スコア5852
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/20 10:04
2019/11/20 23:28 編集
2019/11/21 03:53 編集
2019/11/21 03:58
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。