如何在GIT上使用Fork并提交PR
1、准备工具
按照惯例,首先需要准备一下所需要的内容
码云账号
因为 fork
项目只能 fork
别人的(废话,项目本身就是自己的还要 fork
个锤子 = =)
所以需要两个账号,本例中分别是 smile的微笑
(主) 和 酷一点的名字
(副)
建立仓库
我们自己在 smile的微笑
账户中创建一个仓库 test
,需要包含两个分支,分别为 master
和 dev
地址:https://gitee.com/twelife/test
本地环境
git
当然是必不可少的了,可参考上一篇文章
2、为什么要fork
有用户A做了一个开源项目,特别棒,你很喜欢,但是中间有些内容缺陷,你想要给它完善,但是你又不是仓库成员,用户A也不愿意把你加入该项目,这个时候我们就可以 fork
一份该项目至你自己的仓库中,你自己拉去后去修改完善,在提交到你自己的项目中,再在线上仓库中去发起一个 pull request
请求,将你的修改合并至用户A的项目,当然咯,你发起 pull request
后,用户A若是认为没必要,也可以拒绝的。
3、fork项目
fork项目
打开码云,登陆 酷一点的名字
这个账户,然后打开我们已经在主账号中准备好的仓库 test
在标题行的右侧,有三个按钮框,分别是 watch
、star
、fork
,点击 fork
watch:关注这个项目,这个项目的所有动态,都会在你的动态中显示
star:收藏该项目
fork:会将该项目整个复制至你的仓库中,包括版本记录、issue、提交记录等等
会有一个弹窗提示,选中自己的账户
点击确认,然后等待 fork
完成就会进入到你 fork
的项目主页
跟源项目几乎一模一样哇~ 就是名字变成你自己的了,还有标题下有说明这个项目从哪里 fork
来的
根据分支克隆项目
点击右侧 克隆/下载
按钮,复制项目地址
注意哦!因为主项目存在多个分支,如果是拉取( master
)主分支,那么我们只需要正常克隆即可,但是如果我们需要更改的是 dev
分支
如下图所示,在中间有个 分支
选项,勾选并在输入框输入需要拉取其它分支的名字,我们这里输入 dev
,然后点击确定
等待拉取完成即可
切换分支
刚刚我们得到了 dev
分支,但是我还想切换到 master
分支看看,应该怎么切换分支呢?
在项目文件夹内空白处,召唤右击菜单,依次选择 TortoiseGit
> 创建分支
或者 切换/检出
,如下图所示
选择 基于
版块中的 分支
,在后面下拉框中会显示所有的分支,我们选择 remote/origin/master
,再在 选项
版块中勾选 切换到新分支
,点击确定,等待更新完成即可
如何确定当前分支
有时候我们拉取项目久了一点点,或者操作的频繁了,忘了当前的分支是哪个怎么办?
其实很简单哦,召唤右击菜单,找到 Git 提交 -> "xxx"
,其中 xxx
则为分支名称,例如我的,上一步操作时为 master
分支,因此显示 Git 提交 -> "master"
这样我们就不会把分支搞错了
4、发起Pull Request
下面继续切换到 dev
分支,修改相关内容,然后并提交,本例中新增一个文本文档 来自dev分支.txt
提交后我们在 fork
的项目选择 dev
分支即可看到刚刚提交的文件
接下来点击文件列表上方的 +Pull Request
按钮,看到如下页面
选择源分支、目标分支,填写标题、说明
源分支:你修改后需要发起
Pull Reuqest
的分支目标分支:希望合并到主仓的哪个分支中去
再点击右下角的创建,创建成功后可以看到如下界面,若是发现提交错了,可以点击右侧 关闭
按钮进行关闭,或点击 编辑
按钮进行修改
注:一个分支只能发起一个
Pull Request
操作,在当前的未处理前,无法再次发起pull request
,如果后面有新提交的内容将会自动记入该Pull Request
下,若是不想记入,那么在本地创建一个新分支再提交
5、合并Pull Request
开启浏览器无痕模式或另外打开一个浏览器,打开码云,登陆 smile的微笑
账户,并进入 test
项目中
在标题下方的导航栏中,可以看到 Pull Request
后面的数字为1,说明有一个合并待处理,当然在站内信系中也会有提示,毕竟我们无法在每个项目中去检查,切换到 Pull Request
中,点击下方的标题,则可进入查看详情
查看提交的内容有两种方式,点击下方 提交
再在版本中查看;或者点击右侧 克隆
,在本地克隆查看文件
若该 Pull Request
无问题,那就可以合并啦,点击右侧的 合并按钮
,选择其中一个进行合并即可。
6、完结
虽然在处理过程是比较麻烦,但是操作过两次熟悉了就很容易了
以上内容中仅操作了常规功能,git
很强大,想要更深入,需要自己不断去学习啦
对于内容中,若是存在问题或缺省,欢迎在下方评论指出,谢谢啦~