2017-02-12 7 views
1

私はプロジェクトを持ち、新しいバージョンで作業を開始しました。これまでのプロジェクトは、以前のバージョンとは根本的に異なり、古い機能をほとんど共有しておらず、APIもほとんど共有していません。新しいgitリポジトリに移行する古いリポジトリを特定のポイントの後ろに残す

最新のリリース以降に発生した変更を新しいリポジトリに変換したいと考えています。リファクタリングを開始する前に、古いリポジトリをその状態のままにしておきたいと思います。

新しいリポジトリで最初のコミットを行い、古いリポジトリを強制的に元に戻すことができます。しかし、私はこれがコミュニティの中で強くぶつかると思われる。

私はHEADに関してこれを行う方法もあると考えています。小さな図書館なので、私のすべての変更は元のマスターになされました。

+1

新しいクリーンリポジトリを作成し、それを追加のリモートとして追加してプッシュしますか? – k0pernikus

+1

githubのforkボタンを使用して独自のリポジトリを新しいリポジトリにフォークすることもできます。 – k0pernikus

+0

@ k0pernikusと古いもの?それを逆にするには? – kequc

答えて

1

gitリポジトリは、異なるリモートリポジトリを指すことができます。

あなたが最も可能性が高いだけ originが定義されている、あなたがしてそれらを一覧表示することができ

git remote show 

githubの上で、あなたはクリーンなリポジトリを作成することができ、例えばyour-user/new-remote-repo.git

は、その後、あなたのローカルリポジトリに、新しいリモート追加することができます(「READMEでこのリポジトリを初期化」しないことを選んだ。):時間にあなたの現在のリポジトリをリセットするために

git remote add new-remote-repo [email protected]:your-user/new-repo.git 
git push -u new-remote-repo master 

を、あなたに関連するコミットをチェックアウトし、強制的に押します。

git checkout master 
git reset --hard your-hash 
git push --force origin master 

すでに公開されているマスターを書き直すのはお勧めしません。他の人は既にあなたのmasterブランチに依存している可能性があり、混乱状態に陥る可能性があります。

古いリポジトリに最後の作業状態を示すlast-relaseタグを作成し、Readme.mdの最終リリースとして宣言します。

+0

あなたの深い説明をありがとう、それは私が必要としていたものです。リポジトリは、自分自身を除いて少し休んでいます。だから私はそれがきれいにするのが安全だと思う。私の主人を持つ人には、すみません! – kequc

+0

@ NathanLunde-Berryこれが助けになったら、upvoteして受け入れてください:) – k0pernikus

関連する問題