6

このリポジトリのクローンを作成しました。次のコマンドを実行すると、期待どおり、クローンを使用してフェッチ/プルするようにローカル リポジトリが構成されていることがわかります。

$ git remote show origin
* remote origin
  Fetch URL: https://github.com/domurtag/airbrake-grails.git
  Push  URL: https://github.com/domurtag/airbrake-grails.git

代わりに、ローカル リポジトリがマスター リポジトリ (クローン元) から取得し、クローンにプッシュするようにしたいと考えています。最初にしたことは、マスター リポジトリをリモートとして追加することでした。

$ git remote add cavneb https://github.com/cavneb/airbrake-grails.git

もう一度実行すると同じ出力が表示されるので、リポジトリをフェッチに使用する必要があるgit remote show originことを示すために何か他のことを行う必要があることは明らかですが、これが何であるかはわかりません。cavneb

関連する場合に備えて、.git/config以下の内容を示しました。

[core]
    repositoryformatversion = 0
    filemode = true
    logallrefupdates = true
[remote "origin"]
    url = https://github.com/domurtag/airbrake-grails.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "cavneb"]
    url = https://github.com/cavneb/airbrake-grails.git
    fetch = +refs/heads/*:refs/remotes/cavneb/*
4

4 に答える 4

12

まっすぐな答え

探しているコマンドは次のとおりです。

git remote set-url origin https://github.com/cavneb/airbrake-grails.git
git remote set-url origin --push https://github.com/domurtag/airbrake-grails.git

でも

しかし、私はそれをしないことを強くお勧めします。

完全にはわかりませんが、上記の動作でgitは、混乱する可能性があります。

上記のようにすると、これが同じレポgitであると想定されます。したがって、プッシュすると、次のフェッチの結果が変更されるはずです。これは明らかに変更されません。

ベスト プラクティス

状況を処理する適切な方法は、リポジトリを追加のリモートとしてmaster追加することです。繰り返しますが、別のベスト プラクティスとして、これを repo と呼びますupstream

そして、その余分な repo( ) からプルしたい場合upstream:

git fetch upstream
git merge upstream/master
于 2013-04-09T13:39:12.603 に答える
4

Git 1.8.3では、三角形のワークフローに役立つ設定が導入されています。

remote.pushdefault: 変更をプッシュするリモート。を設定することにより、特定のブランチでオーバーライドできますbranch.<branch>.pushremote

どちらの設定でも、git push(それ以上の引数なしで) ブランチの上流のリモートではなく、好みのリモートにプッシュします。詳細については、1.8.3-rc2 のアナウンスを参照してください。

于 2013-09-01T20:24:53.770 に答える
1

私が間違っていない限り、次の--pullオプションのようなものはありませんgit remote set-url: https://git-scm.com/docs/git-remote#git-remote-emset-urlem

于 2018-09-17T15:53:46.240 に答える