我正在开展一个新项目,想要从GitHub上找到一个种子项目开始。
我已经将种子项目克隆到本地,当我执行以下命令时,它现在显示了1个远程分支:
git remote -v
然而,我想要在这个仓库中添加一个新的远程,并将所有更改或源代码扩展到这个私人仓库。
添加新的远程后,现在我能够看到此仓库中存在两个远程。
如何在两个远程之间切换?
我不认为像 git checkout
这样的命令可以在从两个不同远程获取的 2 个分支上工作时起作用。
我正在开展一个新项目,想要从GitHub上找到一个种子项目开始。
我已经将种子项目克隆到本地,当我执行以下命令时,它现在显示了1个远程分支:
git remote -v
然而,我想要在这个仓库中添加一个新的远程,并将所有更改或源代码扩展到这个私人仓库。
添加新的远程后,现在我能够看到此仓库中存在两个远程。
如何在两个远程之间切换?
我不认为像 git checkout
这样的命令可以在从两个不同远程获取的 2 个分支上工作时起作用。
git push origin
# or
git push remote2
git remote set-url --push origin user@example.com:repo.git
我认为像
git checkout
这样的命令,在从两个不同的远程库拉下来的两个分支上操作时是不起作用的。
git checkout
更适合于本地分支。
您可以基于远程跟踪分支创建一个本地分支:
git checkout -b abranch remote2/abranch
另一个远程库是我的私人远程库,我主要会在那个远程库上工作并进行拉取和推送。
在上游远程库上,我只会进行拉取操作。
这就是 三角工作流 的定义:
你像往常一样从origin
克隆,但是从上游获取(fetch)。$ git remote add upstream https://github.com/atom/atom
$ git fetch upstream
git checkout -b abranch origin/abranch
git rebase upstream/abranch
git push --force
git push origin master
时,它会要求我提供repo的凭据,这是正确的,提供凭据后,它只会给出消息Everything is up-to-date
,这非常令人困惑,因为我无法推送到添加的远程分支。 - Zeeshan Jangit push origin
,在远程仓库中不指定分支名称也可以正常工作。 - Zeeshan Jangit branch -avv
命令,查看本地分支与远程跟踪分支的关联情况。 - VonC我想建立一个专门跟踪起始项目的另一个分支。
git clone -o upstream user@example.com:upstream.git
cd upstream
git branch -m upmaster
git checkout -b master
git remote add origin user@example.com:myrepo.git
git push -u origin master
现在你可以正常地从主分支推送和拉取到你的代码库。
当你想要拉取上游的更改时,将它们拉到你的专用分支中,并将其合并或变基到你的分支中。
git checkout upmaster
git pull
git checkout master
git rebase upmaster
git push -u origin master
。 - Jeff Puckett