私の知る限り、git pull someRemote master
リモートブランチを私のものにマージしようとします。
Git pullを使用して、「自分のものを完全に破棄し、リモートの別のクローンを作成する」と言う方法はありますか?自分のリポジトリとその履歴を保持したいのですが、そのコマンドの後にsomeRemoteのマスターブランチの1:1コピーを作成したいと思います。
明確にするために、RMとMYの2つのリポジトリがあると想像してください。数値はコミットであり、これは1つのブランチ(マスター)のみを想定しています。
RM1 --- RM2 --- RM3 --- RM4 --- RM5 --- RM6 ... | | +-> MY1 --- MY2 --- MY3-+-> MY4 --- MY5 --- MY6 ...
そこで、RM1のクローンとして自分のリポジトリを開始します。それから私は幸せに成長し、RMは幸せに成長しますが、私たちは自分の仕事を共有することはありません。 MY3の後、私のブランチはそれほど素晴らしいものではないが、RM4はかなり良いことに気づきました。だから私はgit pull
RM4をMYに。ただし、MY1-3での変更を保持したくないので、MY4をRM4の1:1コピーにします。
ただし、履歴を保持したいので、理想的にはMY3とRM4の間、またはMY3とRM2-4の間で変更を設定したいと思います。
それはまだ私のリポジトリのままであるはずです。
それは可能ですか?
(これは、プロジェクトをフォークし、少し実験し、数週間そのままにしてから、変更を保持せずに更新したいGitHubプロジェクト用です。現時点では、フォークを削除して再度フォークします。 t最良のアプローチ。)
まず、マスターブランチの名前を別の名前に変更します。
git branch -m master my_old_master
次に、新しいマスターを作成します。
git checkout -b master someRemote
Gitのブランチ名の優れている点は、実際の場所ではなく、場所へのポインターにすぎないことです(「場所」はSHA1コミットIDです)。
パスへのローカル変更を破棄するgitcheckoutの後のように聞こえます。
チェックアウトを使用して変更を元に戻すことができます。
git checkout myfile.h
インデックスからmyfile.hを復元します
現在のマスターブランチを保持したいが、新しいバージョン(リモートブランチをミラーリング)を登録したい場合は、次のことができます。
keepTheir
one )git pull --no-commit