我有一个工作流程问题,但它不是基于任何人的意见,而是更多关于GIT在保持项目与主仓库更新方面的确切能力。
我正构建Backbone-Boilerplate版本,使用Ratchet构建PhoneGap应用。
我已经设置了自己的GitLab安装来存储公司代码,并将克隆添加为主分支。
所以我的问题是,为了使所有内容与原始主人保持同步,最好的方法是什么?
我想让主BBB回购与原点保持同步,但是我应该用这个回购的分叉来构建棘轮版本,还是应该创建一个"棘轮"分支(以及任何其他版本,即:bootstrap等),然后在提交更改时将主服务器合并或重新绑定到分支中?
如果我创建一个fork,是否可以将上游更改合并到一个fork中?我之前从未真正使用过叉子,而且我现在还不清楚应该使用哪种方法。
所以要明确,最终目标是能够更新我们创建的任何版本以匹配GitHub上的主BBB仓库,减去我们创建的其他文件。
感谢。
答案 0 :(得分:2)
只有当你没有可能推到你分叉的仓库时,你才能创建一个分支。
如果你可以推送,那么创建一个分支并在同一个仓库中工作:这样就更容易维护。
如果你不能推回(主要是你不会拥有GitHub上的回购),那么是的,你可以:
在任何时候,您都可以在本地仓库中添加一个名为"上游"引用原始的GitHub仓库(你的分叉),以便从中获取并根据最新的上游提取更新你自己的分支。
参见" Git fork is git clone?"更多。
在你的情况下:
因为我已经从GitHub本地克隆了这个,然后将该克隆上传到我的GitLab,我可以重命名"起源"到"上游"对于GitHub遥控器,然后使用"来源"我的GitLab版本的别名?
是:
cd /your/local/repo
git remote rename origin upstream
git remote add origin /url/to/your/GitLab/repo
有了这个,我可以从
upstream
提取更改,将其合并到本地,然后推送到origin
,我将在master
分支上更新?
是
重要的是,您不能直接使用master
,因为它是由upstream
更新的分支。
然后我可以将本地主人合并到本地"棘轮"或其他没有覆盖新的本地文件?
然后我可以将本地主人合并到本地"棘轮"或其他没有覆盖新的本地文件?
我建议您在upstream/master
之上重新定位您用来隔离新提交的本地分支:
git checkout myBranch
git rebase upstream/master
git push --force