如何推送到与我从中提取的存储库不同的存储库
How to push into a repository different from the repository I'm pulling from
我已经克隆了一个 public github 存储库并开始在本地修改一些文件。
现在我想提交这些更改并将其推送到私有存储库中,但仍然能够从 public 存储库中提取和合并更改。
我如何设置 git 来做到这一点?
我知道我可以分叉 public 项目并处理分叉版本,但我不会将我的更改合并到 public 存储库中,所以我不认为这是正确的解决方案。
您可以定义多个远程存储库。
$ git remote add repo1 <repo1_url>
$ git remote add repo2 <repo2_url>
现在你有 2 个远程仓库,假设你在 repo1
的 master
分支上,如果你的分支正在跟踪远程 master
分支,你可以直接 git pull
然后你可以使用
推送到另一个仓库
$ git push repo2 <branch_name>
现在您已将分支推送到另一个存储库。
I know I could fork the public project and work off the forked version, but I am not going to merge my changes into the public repo, so I don't think it's the correct solution.
这是一个有效的解决方案,即使您无意提出任何拉取请求。
如果您不希望您的更改可见(在 public 存储库中,就像 fork 存储库一样),这将不是一个有效的解决方案
在这种情况下,创建一个空的私有存储库(例如在 Bitbucket 上)并且:
cd /path/to/local/repo
git remote rename origin upstream
git remote add origin /url/to/private/repo
git push --mirror
将 link 保留到原始 public 存储库(此处引用为 'upstream')很重要,以便能够在 upstream/master
上获取或变基(并从该存储库获取最新更新)。
我会将远程源更改为私有仓库:
git remote delete origin
git remote add origin git@server:user/repo.git
现在您可以使用
推送到私人仓库
git push origin BRANCH_NAME
要从 public 存储库中提取(并合并)我会创建另一个遥控器,我们称之为 upstream
:
git remote add upstream git@server:public/repo.git
您现在可以从上游获取:
git fetch upstream master
并可能将其合并到您的本地分支中:
git merge upstream/BRANCH_NAME
我已经克隆了一个 public github 存储库并开始在本地修改一些文件。
现在我想提交这些更改并将其推送到私有存储库中,但仍然能够从 public 存储库中提取和合并更改。
我如何设置 git 来做到这一点?
我知道我可以分叉 public 项目并处理分叉版本,但我不会将我的更改合并到 public 存储库中,所以我不认为这是正确的解决方案。
您可以定义多个远程存储库。
$ git remote add repo1 <repo1_url>
$ git remote add repo2 <repo2_url>
现在你有 2 个远程仓库,假设你在 repo1
的 master
分支上,如果你的分支正在跟踪远程 master
分支,你可以直接 git pull
然后你可以使用
$ git push repo2 <branch_name>
现在您已将分支推送到另一个存储库。
I know I could fork the public project and work off the forked version, but I am not going to merge my changes into the public repo, so I don't think it's the correct solution.
这是一个有效的解决方案,即使您无意提出任何拉取请求。
如果您不希望您的更改可见(在 public 存储库中,就像 fork 存储库一样),这将不是一个有效的解决方案
在这种情况下,创建一个空的私有存储库(例如在 Bitbucket 上)并且:
cd /path/to/local/repo
git remote rename origin upstream
git remote add origin /url/to/private/repo
git push --mirror
将 link 保留到原始 public 存储库(此处引用为 'upstream')很重要,以便能够在 upstream/master
上获取或变基(并从该存储库获取最新更新)。
我会将远程源更改为私有仓库:
git remote delete origin
git remote add origin git@server:user/repo.git
现在您可以使用
推送到私人仓库git push origin BRANCH_NAME
要从 public 存储库中提取(并合并)我会创建另一个遥控器,我们称之为 upstream
:
git remote add upstream git@server:public/repo.git
您现在可以从上游获取:
git fetch upstream master
并可能将其合并到您的本地分支中:
git merge upstream/BRANCH_NAME