我想在(自托管)bitbucket服务器中克隆github repostitory,并不时从github存储库中提取最新的更改。在我们的克隆中,我们将做一些永远不会离开我们的存储库的实验性东西。
说明;化石我确保我们的存储库和他们的存储库具有相同的项目ID,我会这样做:
$ cd ~/checkout/prjdir
$ fossil pull https://their.org/prj/foo --once
这将获得所有最新的签到,分支,标签等。然后将其推送到我们组织的服务器:
$ fossil push
永远不会有任何冲突;我们的更改将在实验分支上进行,因此从上游更新时无需进行任何合并。
我试图复制化石工作流程并复制/粘贴一些似乎相关的东西,并为最初的克隆提出这个:
$ git clone https://github.com/foo/bar.git
$ cd bar
$ git remote set-url origin https://ourbitbucket.org/foo/bar.git
$ git push -u origin master
然而,这似乎没有带来标签(标签对我们很重要)。
使用git(github作为上游,我们的bitbucket服务器用于我们自己的标签/分支):
答案 0 :(得分:2)
不要更改存储库的URL。只需创建两个遥控器,upstream
和origin
。
默认情况下不会推送标签。使用--tags
推送它们。
$ git clone https://github.com/foo/bar.git
$ cd bar
$ git remote rename origin upstream
$ git remote add origin https://ourbitbucket.org/foo/bar.git
$ git push -u --tags origin master
每当您想与上游同步时,请执行
$ git checkout master
$ git pull upstream master
甚至
$ git reset --hard upstream/master
并重新分支您的分支(或将其合并到其中)以将其更改合并到您的工作中:
$ git checkout my-branch
$ git rebase master
或
$ git checkout my-branch
$ git merge master