Gitee-Fork介绍和使用流程
创作时间:
作者:
@小白创作中心
Gitee-Fork介绍和使用流程
引用
1
来源
1.
https://www.cnblogs.com/pingguomang/p/18783891
在Gitee或类似代码托管平台上,Fork是一个非常重要的功能,它允许用户创建目标仓库的独立副本,从而在不干扰原仓库的情况下进行代码修改和贡献。本文将详细介绍Fork的概念、作用、使用场景、操作流程以及与Clone的区别,帮助开发者更好地理解和使用这一功能。
一、介绍
在 Gitee 或其他代码托管平台上,Fork 是将目标仓库复制到自己的账户下,形成独立副本的操作。Fork 的主要作用是为非开发者或协作者提供一个安全的、独立的环境,以便对代码进行修改和贡献。
二、主要作用
创建独立的代码副本
- Fork 会将目标仓库复制到自己的账户下,你拥有完整的读写权限,而不会影响原仓库。
- 对 Fork 仓库的任何更改都不会直接影响原仓库,安全性高。
非协作者贡献代码
- 如果你不是目标仓库的协作者,Fork 是向仓库贡献代码的主要方式。通过 Fork,可以:
- 修改代码。
- 提交 Pull Request,将修改提交给原仓库。
独立开发和实验
- Fork 仓库可以作为实验和独立开发的环境。
- 你可以自由地修改代码、尝试新功能,而无需担心影响主项目。
参与开源项目
- Fork 是开源项目中广泛使用的机制,用于开发者之间的协作。你可以:
- Fork 开源项目。
- 修改或添加新功能。
- 通过 Pull Request 向原项目提交你的改动。
与原仓库保持同步
- 即使 Fork 仓库与原仓库分离,你仍然可以从原仓库拉取最新代码,保持同步开发。
学习和参考代码
- Fork 仓库是学习项目代码的有效方式,你可以在本地修改和运行代码,而不影响原仓库。
- 适用于需要分析或参考他人代码的场景。
三、Fork 的常见使用场景
场景 | 具体作用 |
---|---|
贡献开源项目 | 非协作者 Fork 项目后修改代码,通过 PR 提交改动给原项目。 |
团队开发中的分支保护 | Fork 项目后开发新功能,主项目仅在审查通过后接受改动,保护主分支的稳定性。 |
学习项目代码 | 学习其他开发者的代码或尝试修改代码,而不影响原项目。 |
实验和调试 | 在 Fork 仓库中尝试不同的开发方式或修复 bug,适合实验环境。 |
私人开发或维护 | 将公开项目 Fork 到自己的账户中,用于私人开发或项目定制化。 |
四、Fork 的操作流程
1.Fork 仓库
- 在 Gitee 的目标仓库页面,点击 Fork 按钮。
- 选择 Fork 到自己的账户或组织下。
点击Create fork按钮后,就可以在你指定的组织下或者你的账号下 创建一个新的仓库了。
2.克隆 Fork 仓库
- 将 Fork 仓库 克隆到本地开发环境。
复制以下代码,克隆你fork的新仓库地址:
git clone https://gitee.com/your_username/forked_repo.git
3.修改代码并推送
在 Fork 仓库中创建分支,进行修改后提交更改。
git checkout -b new-feature #注意new-feature分支名,不能跟 原始仓库的默认分支同名,否者到时候无法提交pr,第四步我会介绍的。
# 修改代码....
git add .
git commit -m "Add new feature"
git push origin new-feature
**这里有几点细节我需要说明一下:
**1)此时可以看到在fork的仓库test中,已经有了一次新增的push记录了;(test fork这次提交,就是新push的记录)
2)因为这个仓库是我们fork别的仓库而新创建的,fork完成后,你会发现原始仓库中的所有历史push记录也都会被全部的显示到这个fork新仓库中;(2024年6月17号的这次提交记录,就是原始仓库中的提交记录)
4.发起 Pull Request
2.
- 回到 Gitee的web页面中,在原始仓库中 提交 Pull Request,选择fork仓库的分支 将修改合并到 原仓库。
- 在原始仓库中,创建的pr如下
- Merge合并这个pr:
确认发现,在fork的新仓库中做的所有修改操作 已经全部merge到了原始仓库的默认分支(这是提交pr时指定的合并到哪个分支就是哪个分支)了。
这里也有一点需要说明:
1) 在fork的新仓库中修改代码时,需要创建一个新分支,并且新分支的名字不能跟 “原仓库”的默认分支(一般是master或者main分支)同名,如果同名的话 我们在提交pr页面发现根本无法提交!!!
5.同步更新原仓库的改动
- 如果原仓库发生了更新,可以通过一下命令 :添加远程仓库地址同步最新代码。
git remote add upstream https://gitee.com/original_repo.git #指定原仓库地址
git fetch upstream
git merge upstream/main #指定要同步的原仓库的分支
五、Fork 与 Clone 的区别
操作 | Fork | Clone |
---|---|---|
结果 | 创建目标仓库的副本到你的账户。 | 将目标仓库的代码下载到本地。 |
权限 | 你对 Fork 仓库有完整的读写权限,但原仓库只读。 | 仅在本地对代码操作,不影响任何远程仓库。 |
适用场景 | 非协作者参与项目开发或私人维护项目时使用。 | 协作者直接开发或仅需要本地查看代码时使用。 |
影响范围 | Fork 后的修改仅影响 Fork 仓库,不直接影响原仓库。 | Clone 不改变任何远程仓库,只操作本地副本。 |
热门推荐
深圳至中山公交线路详情:定制专线、接驳线和机场专线全面开通
穿越白露的《秋夕旅怀》,李白青莲巷思乡情
沉得住气,是一个人最大的本事(深度好文)
三类可吸收术中止血材料介绍及临床试验设计
预防辐射提高生活环境
如何降低企业的所得税费用:实用技巧
利润暴跌60%,4200亿市场神话破灭,口腔行业为何走下神坛?
解决老年人的家庭争执
客户体验:20元1小时的体验割麦,你要来吗?
隐身技术未来的发展趋势是什么?
如何与不同类型的上司有效沟通?
刚尿完没多久又想尿?提醒:这多半与5个因素有关,别不当回事
将军:从春秋时期的武官到近现代军衔制度
无名杀武将编辑攻略:从界面编辑到文本创建
可可脂和代可可脂的区别:成分、营养价值及健康影响全面解析
为什么火车上的网速都超级慢,并且信号极差?
别担心!体检报告的这些异常,可能是虚惊一场!
项目管理的第一步是什么
如何理解大盘点数的意义和影响?这些点数如何反映市场趋势?
揭秘:狗狗为何总爱睡在主人枕边?十大原因全解析
金庸武侠世界的人物解读:从《江湖的倒影》看经典角色的另一面
人类的原罪:偏见与偏心在历史和文化中的投影
冬至┃糖友这样吃饺子、汤圆,血糖波动小!
三国鼎立:东吴与蜀汉对曹魏的威胁比较
草莓甜点料理教学:5道美食在家轻松做
万万没想到,凭退役军人优待证,随行亲友也能享受优待!
电陶炉:一种多功能厨房电器的全面解析
航空安全法规与国际标准对比解读
宠物陪伴的力量:如何在情感心理调适中发挥作用
终极旅行数据使用指南:在旅途中最大限度地提高连接能力