
(Repo 1)にリポジトリが 1 つあります/home/user/reponame
。このリポジトリを (Repo 2) にクローンしました/tmp/reponame
。Repo 1 のアップストリーム リポジトリを Repo 2 に変更することは可能ですか?
他の質問ではブランチを提案していますが、ここで探しているのはそれではありません。ブランチを実行するとgit checkout -b test --track /tmp/reponame/master
、エラーが発生します/tmp/reponame/master is outside repository
。
答え1
Git では、リポジトリ全体の設定に「アップストリーム」という用語を使用しません。Git 用語では、アップストリームがあるのは個々のブランチのみで、その目的は などのコマンドのショートカット/デフォルトとして使用することであるため、他のブランチにのみ設定できますgit merge <otherbranch>
。(git checkout
コマンドも、ブランチの操作を中心に構築されています。)
代わりに、おそらくあなたが探しているのは「リモコン」はリポジトリの URL を保存します。すべての新しいクローンでは、そのソース URL が という名前のリモートに保存されますorigin
。したがって、リポジトリ 1 をリポジトリ 2 にプッシュできるようにするには、git remote add
または を使用しますgit remote set-url
(その名前のリモートが既に存在するかどうかによって異なります)。
git remote add origin /tmp/reponame
git fetch origin
あるいは:
git config remote.origin.url /tmp/reponame
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
多くの場合、これに続いてブランチごとのアップストリームを更新し、git pull
などを機能させます。
git branch --set-upstream-to="origin/master" master