zoukankan      html  css  js  c++  java
  • [git]fork+pull提交模式

    fork+pull提交模式

    在公司项目中,大多都是通过“主题分支”的方式,进行开发与合并代码。但是,这样又一个弊端就是:合并代码后需要删除分支。同时,如果是开源的项目的话,非项目中的成员是无法创建分支的,也就无法贡献代码。

    这个时候,就体现出fork的优势所在了。fork就是把源仓库复制一份到自己的github仓库下,这样非项目中的成员也可以任意修改代码,修改完代码,只要提交pr就可以了。后面的事情就是,项目的所有者要做的了。

    同时,项目的所有者也不需要设定主分支的权限,比如:成员不能自行把开发的主题分支直接合并到dev或者master分支上。只有管理者才有这种权限,否则会不便于管理。fork提交的pr不会产生主题分支,也就是不需要合并完pr后删除分支。

    如何使用fork模式

    1. fork项目

    2. 设置源项目的远程仓库:git remote add 起一个名字 源项目地址,用于后面的更新代码。

    3. 在dev上直接修改代码

    4. 在push前保证所在分支是最新的:git pull --rebase 刚才起的名字 dev,这里因为是在dev分支上直接修改,所以获取源项目的dev分支的最新代码。

    5. 推送到你fork来的仓库上:git push,push前确定是否关联的是dev分支:git branch -vv

    6. 最后在源项目中提交pr,请求合并你的改动。

    在上述过程中,容易混淆的地方就是’源项目‘和’fork的项目’:你没有办法修改’源项目‘,只能修改fork到你自己的github账号仓库下的’fork的项目‘。在提交的时候,需要保证‘fork的项目’是最新,这样在pr前,就可以在你的本地把所有的冲突解决完成,顺利的合并到’源项目‘上。

    总结

    如果你是项目中的成员,有创建分支的权限,那么用fork模式或者主题分支的模式都可行的,同时没有什么太大的区别。

    对于向开源项目贡献代码,那就一定要用到fork模式。

    参考

  • 相关阅读:
    【纯水题】POJ 1852 Ants
    【树形DP】BZOJ 1131 Sta
    【不知道怎么分类】HDU
    【树形DP】CF 1293E Xenon's Attack on the Gangs
    【贪心算法】CF Emergency Evacuation
    【思维】UVA 11300 Spreading the Wealth
    【树形DP】NOI2003 逃学的小孩
    【树形DP】BZOJ 3829 Farmcraft
    【树形DP】JSOI BZOJ4472 salesman
    【迷宫问题】CodeForces 1292A A NEKO's Maze Game
  • 原文地址:https://www.cnblogs.com/xueweihan/p/5566469.html
Copyright © 2011-2022 走看看