次のコマンドを使用して、1つのリポジトリ(repo1など)のコンテンツのみを別の既存のリポジトリ(repo2など)に移動しようとしています。
- git clone repo1
- git clone repo2
- cd repo1
- git remote rm Origin
- git remote add repo1
- git Push
しかし、機能していません。他の同様の投稿を確認しましたが、内容ではなくフォルダを移動しているだけです。
あなたが探しているコマンドは次のとおりです:
cd repo2
git checkout master
git remote add r1remote **url-of-repo1**
git fetch r1remote
git merge r1remote/master --allow-unrelated-histories
git remote rm r1remote
その後、repo2/master
にはrepo2/master
とrepo1/master
のすべてが含まれ、両方の履歴も含まれます。
ここで完全に説明 https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
まず、既存のリポジトリからローカルインデックスにすべてのリモートブランチとタグをフェッチする必要があります。
git fetch Origin
次のローカルコピーを作成するために必要な不足しているブランチをチェックできます。
git branch -a
新しいリポジトリのSSHクローンURLを使用して、既存のローカルリポジトリに新しいリモートを作成しましょう。
git remote add new-Origin [email protected]:manakor/manascope.git
これで、すべてのローカルブランチとタグをnew-Originという名前の新しいリモートにプッシュする準備ができました。
git Push --all new-Origin
git Push --tags new-Origin
New-Originをデフォルトのリモートにしましょう:
git remote rm Origin
New-Originの名前をOriginに変更し、デフォルトのリモートになるようにします。
git remote rename new-Origin origin
既存のブランチを保存して履歴をコミットしたい場合は、ここで私のために働いた1つの方法があります。
git clone --mirror https://github.com/account/repo.git cloned-repo
cd cloned-repo
git Push --mirror {URL of new (empty) repo}
ここで、ソースと宛先のレポジトリを一定期間同期させたいとします。たとえば、現在のリモートリポジトリ内には、新規/置換レポジトリに持ち込みたいアクティビティがまだあります。
git clone -o old https://github.com/account/repo.git my-repo
cd my-repo
git remote add new {URL of new repo}
最新の更新をプルダウンするには(ローカルに変更がない場合):
git checkout {branch(es) of interest}
git pull old
git Push --all new
注意:私はまだサブモジュールを使用していないので、サブモジュールがあれば追加のステップが必要になるかもしれません。
これにより、ローカルリポジトリ(履歴を含む)がリモートgithub.comリポジトリに移動しました。 GitHub.comで新しい空のレポジトリを作成した後、以下の手順3でURLを使用しますが、うまく機能します。
git clone --mirror <url_of_old_repo>
cd <name_of_old_repo>
git remote add new-Origin <url_of_new_repo>
git Push new-Origin --mirror
私はこれを見つけました: https://Gist.github.com/niksumeiko/8972566
コードがすでにGitによって追跡されている場合の最も単純なアプローチは、新しいリポジトリを「Origin」としてPush toに設定します。
cd existing-project
git remote set-url Origin https://clone-url.git
git Push -u Origin --all
git Push Origin --tags
@ Dan-Cohnの回答によると、Mirror-Pushはあなたの友達です。これはリポジトリを移行するための私の行き先です:
リポジトリのミラーリング
1.Git Bashを開きます。
2.リポジトリのベアクローンを作成します。
$ git clone --bare https://github.com/exampleuser/old-repository.git
3.新しいリポジトリにミラープッシュします。
$ cd old-repository.git
$ git Push --mirror https://github.com/exampleuser/new-repository.git
4.手順1で作成した一時ローカルリポジトリを削除します。
$ cd ..
$ rm -rf old-repository.git
参照とクレジット: https://help.github.com/en/articles/duplicating-a-repository
近くにいるようです。提出物の単なるタイプミスではないと仮定すると、ステップ3はrepo1ではなくcd repo2
である必要があります。そして、ステップ6はプッシュではなくgit pull
でなければなりません。改訂リスト:
1. git clone repo1
2. git clone repo2
3. cd repo2
4. git remote rm Origin
5. git remote add repo1
6. git pull
7. git remote rm repo1
8. git remote add newremote
以下の方法を使用して、すべてのブランチとコミット履歴を維持することにより、GIT StashをGitLabに移行しました。
古いリポジトリをローカルにクローンします。
git clone --bare <STASH-URL>
GitLabで空のリポジトリを作成します。
git Push --mirror <GitLab-URL>