克隆GitHub Repo的GIT工作流程

时间:2014-04-25 10:56:39

标签: git github gitlab

我有一个工作流程问题,但它不是基于任何人的意见,而是更多关于GIT在保持项目与主仓库更新方面的确切能力。

我正构建Backbone-Boilerplate版本,使用Ratchet构建PhoneGap应用。

我已经设置了自己的GitLab安装来存储公司代码,并将克隆添加为主分支。

所以我的问题是,为了使所有内容与原始主人保持同步,最好的方法是什么?

我想让主BBB回购与原点保持同步,但是我应该用这个回购的分叉来构建棘轮版本,还是应该创建一个"棘轮"分支(以及任何其他版本,即:bootstrap等),然后在提交更改时将主服务器合并或重新绑定到分支中?

如果我创建一个fork,是否可以将上游更改合并到一个fork中?我之前从未真正使用过叉子,而且我现在还不清楚应该使用哪种方法。

所以要明确,最终目标是能够更新我们创建的任何版本以匹配GitHub上的主BBB仓库,减去我们创建的其他文件。

感谢。

1 个答案:

答案 0 :(得分:2)

只有当你没有可能推到你分叉的仓库时,你才能创建一个分支。

如果你可以推送,那么创建一个分支并在同一个仓库中工作:这样就更容易维护。

如果你不能推回(主要是你不会拥有GitHub上的回购),那么是的,你可以:

  • 分叉(在GitHub上)
  • 克隆它
  • 如果需要,可将其推送到您的GitLab服务器。

在任何时候,您都可以在本地仓库中添加一个名为"上游"引用原始的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