207

次のコマンドを使用して、あるリポジトリ( ) のコンテンツのみrepo1を別の既存のリポジトリ ( ) に移動しようとしています。repo2

git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push

しかし、それは機能していません。同様の投稿を確認しましたが、コンテンツではなくフォルダーを移動しているものしか見つかりませんでした。

4

14 に答える 14

97

ここで完全に説明されています https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/

まず、すべてのリモート ブランチとタグを既存のリポジトリからローカル インデックスにフェッチする必要があります。

git fetch origin

ローカル コピーを作成する必要がある不足しているブランチを確認できます。

git branch -a

新しいリポジトリの SSH クローン URL を使用して、既存のローカル リポジトリに新しいリモートを作成しましょう。

git remote add new-origin git@github.com: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
于 2016-07-11T09:43:54.747 に答える
1

近くにいるようです。提出の単なるタイプミスではないと仮定すると、ステップ 3cd repo2は repo1 の代わりにあるはずです。git pullそしてステップ6は押してはいけません。作り直されたリスト:

  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
于 2013-06-28T18:24:26.793 に答える
0

ここには多くの解決策があります。過去に私のために働いた簡単なワンライナーは、 --mirror オプションを使用することです。最初にコピーするリポジトリに移動します。次に、新しいレポが既にセットアップされていると仮定して、クローン リンクを使用します。それだけです。すべての履歴が新しいリポジトリにコピーされます。

cd repoOne

git --mirror linktonewrepo.git

于 2022-02-23T21:41:26.947 に答える
-1

ここには複雑な答えがたくさんあります。ただし、ブランチの保存に関心がない場合は、リモートオリジンをリセットし、アップストリームを設定してプッシュするだけです。

これは、すべてのコミット履歴を保持するために機能しました。

cd <location of local repo.>
git remote set-url origin <url>
git push -u origin master
于 2016-07-22T19:35:17.193 に答える