1. github
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
gitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python 等。
2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。
2. 使用github
高效搜索开源项目
语法 | 详情 |
---|---|
in:name |
标题中必须带有you_need的关键字,比如说,in:name python就代表项目标题必须有python关键字 |
in:readme |
方法限制了项目详细介绍中的关键字 |
in:description |
方法限制了项目简介中的关键字 |
stars:>1000 | 项目的stars星星数大于1000个 |
forks:>1000 | 项目上fork数大于1000 |
language:java | 项目语言使用的java语言 |
pushed:>2019-10-01 | 项目更新时间在2019年10月1日之后 |
上面的方法可以叠加使用,至少可以提高你的搜索精准度。
3. 提高github官网的访问速度
GitHub
访问速度慢,这是因为GitHub
的CDN
域名遭到DNS
污染,导致无法连接GitHub
的加速分发服务器,才会使得国内访问速度很慢。
解决: 通过修改 Hosts
文件,将域名解析直接指向 IP 地址来绕过
DNS` 解析的办法解决污染的问题。
我们先修改本地hosts文件
windows
系统hosts
文件路径:C:\Windows\System32\drivers\etc\hosts
Linux
系统hosts
文件路径:/etc/hosts
mac
系统hosts
文件路径:/etc/hosts
加入以下内容
1 | # GitHub |
增加github.com域名相关的映射
打开ipaddress官网,找到github
####修改后,我们使用“ifconfig /flushdns
”命令刷新一下DNS解析缓存
在此访问github.com
网址时,虽然不能达到秒出,但是相比以前快多了!
4. github团队协做开发
一.内部协作
1. 创建邀请
假设两个用户:zysheep(产品经理)、java-ivanLi(程序员小李)
产品经理登入github,创建BaseTest仓库,邀请程序员小李协助开发,搜索java-ivanLi并添加
搜索后
add java-ivanLi to BaseTest
,头部显示
2. github会发送邮件给被邀请人
3. 接受邀请或者拒绝参与合作
点击接受邀请,头部显示
返回主页,存在zysheep/BaseTest
仓库
4. 程序员小李拉取开发
1 | git clone https://github.com/zysheep/BaseTest.git 克隆远程库 |
查看
zysheep
(产品经理)的首页
有程序员小李的提交日志信息,点击zysheep/BaseTest查看文件详情
点击修改日志查看内容修改详情,对内容整体评论
对内容的一行评论
5. 解决冲突
如果不是基于GitHub 远程库的最新版所做的修改,不能推送,必须先拉取。拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。
6. 删除程序员小李访问权
程序员由于代码写的烂,被产品经理开除了,所以就需要删除对仓库的访问权限
头部信息
程序员小李由于被产品开除,心情很不好,就想提交bug到仓库中,祸害团队(开玩笑的,讲故事)
1 | # 修改helloworld.txt文件 |
1 | git remote |
git更新了一个证书,我们本地需要再更新以下:
https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0
下载安装即可
再次提交,发现还是报错
原因: 远程对java ivanLi访问zysheep/BaseTest.git的许可被拒绝,无法访问”https://github.com/zysheep/BaseTest.git/"
结论:删除没用的参与者,参与者就无法在对仓库进行访问
二. 跨团队协作
假设:有两个团队:java-ivanLi(第三方)、zysheep(产品经理),产品经理请第三方帮忙协助修改自己修改不来的bug
(1) 产品经理登录,复制的仓库地址发送给第三方,第三方Fork仓库到自己的远程库,clone到本地开发
(2) 克隆到本地,修改bug,提交到本地库,如果是添加了一个文件需要先添加到缓存区在提交到本地库,在
push
到远程仓库
(3) 发生一个pull request请求本地库与远程库合并
下一步
下一步
下一步
这里实际就是一个对话的过程了,等待产品经理的操作。
(4)登入产品经理的github
查看来自java-ivanLi的Pull request
下一步,产品经理回复java-ivanLi
审核代码
确认代码没有bug,是好的建议,进行合并
输入合并的备注信息
合并后的状态