我创建了this repository的克隆。如果我运行以下命令,我会看到我的本地存储库配置为使用我的克隆来获取/拉取,如预期的那样。
$ 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/*
答案 0 :(得分:11)
您正在寻找的命令是:
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假设这是相同的 repo。所以当你推动时,下一次获取的结果应该改变 - 这显然不会改变。
处理你的情况的正确方法是将主仓库添加为额外的远程(我称之为upstream
),当你想要拉动它时,只需执行:
git fetch upstream
git merge upstream/master
答案 1 :(得分:4)
Git 1.8.3引入了有助于三角工作流程的设置。
remote.pushdefault
:将更改推送到的远程。可以通过设置branch.<branch>.pushremote
来覆盖特定分支。
使用任一设置,git push
(没有其他参数)将推送到您的首选远程,而不是分支的上游远程。有关详细信息,请参阅1.8.3-rc2 announcement。
答案 2 :(得分:1)
除非我弄错了,否则不存在--pull
的{{1}}选项:https://git-scm.com/docs/git-remote#git-remote-emset-urlem
答案 3 :(得分:0)
尝试使用set-url with pull and push:
git remote set-url --pull origin https://github.com/domurtag/airbrake-grails.git
git remote set-url --push origin https://github.com/cavneb/airbrake-grails.git