我正在开展一个项目,我有一个中央git仓库。该项目是一个骨架,可作为许多分叉的基线。
是否可以为fork配置我的本地工作存储库以跟踪项目的中心作为原点并跟踪骨架的master作为一个名为upstream的单独分支跟踪骨架的主人,以挑选对骨架的更改?< / p>
我想我希望我的工作流程如下:
创建骨架&gt;&gt; Fork Skeleton&gt;&gt;骨架从叉2拉出变化&gt;&gt; Fork 1从Skeleton中拉出变化
有没有更好的流程来完成我所描述的内容?
答案 0 :(得分:8)
阅读GitHub“Fork a Repo”页面的“Step 3: Configure remotes”(我知道你没有提到GitHub,但它仍然相关)
origin
是您的分支的远程地址,您的本地克隆可以从/推送到upstream
是原始回购Skeleton
的远程地址(您可以使用git remote add upstream https://..../Skeleton.git
添加<)所以上游不是分支。
但是您可以使用git branch定义一个本地分支,该分支将从上游分支上游分支远程跟踪分支主服务器:
git branch --set-upstream upstream_master upstream/master
但是,您不需要本地分支,特别是如果您不会对其进行新的提交:您可以在upstream/master
之后直接将您的主人与git fetch upstream
进行比较,从upstream/master
中选择您需要的内容。
答案 1 :(得分:1)
根据你的描述,你应该使用
修改骨架上的分叉$ git rebase upstream
这将改变以下情况
initially:
1 - 2 - 3 <- upstream
\- 4 <- fork
upstream changes:
1 - 2 - 3 - 5 - 6 <- upstream
\- 4 <- fork
after rebase:
1 - 2 - 3 - 5 - 6 <- upstream
\- 4 <- fork
换句话说,你的fork看起来好像是从最新版本的骨架分叉出来的。
这种方法的缺点是它改变了分叉的历史......如果你不想要这个,你可以将上游合并到分叉中(我认为不需要挑选)。