一. 入门必备知识
(一)git, SVN, github区分
SVN也是版本控制系统,它是一个本地的版本控制工具
git也是免费,开源的分布式版本控制系统,在线的版本控制工具
什么是Github?
Github是全球最大的社交编程及代码托管网站
Github可以托管各种git库,并提供一个web界面
Github和Git的关系
github是基于git来进行版本控制,git只是github上用来管理项目的一个工具而已,github的功能就不仅仅只有这点
综上,Git是版本控制软件
Github是项目代码托管的平台,借助git来管理项目代码
什么是版本控制系统?
版本控制是一种记录一个或若干个文件内容变化,以便将来查询特定版本修订情况的系统
系统具体功能:
- 记录文件的所有历史变化
- 随时可恢复到任何一个历史状态
- 多人协作开发或修改
- 错误恢复
(二)版本控制软件中Trunk和Branch的区别
Trunk——软件开发过程中的主线,保存了从版本库建立到当前的信息
Branch——软件开发过程中的分支,保存了从版本库的某一特定点(不一定是版本库建立时)到当前的信息。分支主要用于在不影响Trunk其他用户情况下进行一些关于新功能的探索性或实验性的开发,待新功能完善后它也可以合并到Trunk中
(三)github有什么作用
- 学习优秀开源项目
- 多人合作
- 写作
- 个人建立:如果你github账号有不错的开源项目,star很多,他就算你一个强有力的简历。
(四)github的理解误区
- 英语差也可以学会
- 不需要翻墙
二. 开始github之旅
2.1 目的
借助github托管项目代码
2.2 基本概念
仓库(Repository)
仓库用来存放项目代码,每个项目对应一个仓库,多个开源项目则有多个仓库
收藏(Star)
收藏项目,方便下次查看
复制克隆项目(Fork)
![img](file://C:/Users/12751/AppData/Roaming/Typora/typora-user-images/1563945199943.png?lastModify=1563973607)
注意:该fork的项目是独立存在的
发起请求(Pull Request)
![img](file://C:/Users/12751/AppData/Roaming/Typora/typora-user-images/1563945245968.png?lastModify=1563973607)
关注(Watch)
关注项目,当项目更新可以接收到消息
事物卡片(Issue)
发现代码BUG,但是目前没有成型代码,需要讨论时用
Github主页
账号创建成功或点击导航栏Github图标都可进入github主页,该页左侧主要显示用户动态以及关注用户或关注仓库的动态的,右侧显示所有的git库
仓库主页
仓库主页主要显示项目的信息,如:项目代码,版本,收藏/关注/fork情况等
个人主页
个人信息:头像,个人简介,关注我的人,我关注的人,我关注的git库,我的开源项目,我共享的开源项目等信息
2.3 登录注册
2.4 创建仓库/创建新项目
说明
一个git库(仓库)对应一个开源项目
通过git管理git库
创建仓库
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B7620E6A9-BDB6-304D-D9A4-CFB7341070BA%7D.png?lastModify=1563973607)
![img](file://C:/Users/12751/AppData/Roaming/Typora/typora-user-images/1563948264797.png?lastModify=1563973607)
2.5 仓库管理
新建文件
仓库主页,点击 [create new file] 创建仓库文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BB6B50287-8EA5-C123-4696-6C38AC0F28E4%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B900004B6-682C-11E1-4FEB-B615574D47F9%7D.png?lastModify=1563973607)
下面表单需要填写每次提交的目的,原因:为了方便其他开发者知道本次添加或修改的原因
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B388C4D34-0CAC-DE92-F685-FA5C3FFFEEB7%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B8521CEFC-407C-FA3A-6340-6D49F0566CCF%7D.png?lastModify=1563973607)
编辑文件
仓库主页,点击 [需要修改的文件] 进入文件详情页
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BCB8F4ADE-7C74-B8A3-5EB2-2F89FB40ACF3%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B0903F740-C799-BFCE-7F57-0CDAEA3C19FF%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B68CD4652-0AFD-2E52-7CE8-07A1E77C4866%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BA84D6048-EEE0-CCBF-2BD8-FB7130A641C8%7D.png?lastModify=1563973607)
删除文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B83997FF3-D26E-FFBD-798F-F132567D3642%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B5D65279D-B768-2C91-30E8-10124ABF3757%7D.png?lastModify=1563973607)
被删除的文件如何查看信息??
点击commits按钮查看
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B0B61CA85-8A6A-87AA-2277-C2E3BCA8E236%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B6583C9F4-4F04-9CD3-D6DE-4F2AD58EF5DC%7D.png?lastModify=1563973607)
上传文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B087CAD6B-98BA-0AE1-1397-F412B18FF5FB%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BD3328A01-4802-F95C-684B-B4B377678C84%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B5C1DCC72-C829-117B-438B-1470BCB1362C%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B172A131C-1AF3-0B97-8714-03B8DC568550%7D.png?lastModify=1563973607)
搜索仓库文件
快捷键(t)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B0ABB0620-84F0-3BE6-B0A5-58B06FCDAF40%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BE7F3826B-7BF8-CF18-F0D8-51AE261A005D%7D.png?lastModify=1563973607)
下载/检出项目
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B94C1CF51-EF6A-A840-4F73-3174FD1BA278%7D.png?lastModify=1563973607)
2.6 Github Issues
作用:发现代码BUG,但是目前没有成型代码,需要讨论时用;或者使用开源项目出现问题时使用
情景:张三发现李四开源git库有bug,则发提交了一个issue;李四隔天登录在github主页看到通知并和张三交流,最后关闭issue
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BAEA5C815-F2A2-FA68-E0E7-577C7C2E7A95%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B13346B3F-56EF-59C8-B2C2-1F6B84DFDB42%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BC2592E82-88A9-19EF-2848-19F64162409A%7D.png?lastModify=1563973607)
2.6 基本概念(实战操作)
Github主页
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B524E7BAC-AF15-5627-FEEB-6516B30F4E1E%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B92EF4144-0A1B-199D-0EDF-26267C25DBF6%7D.png?lastModify=1563973607)
收藏
[如何收藏]
操作:打开对应项目主页,点击右上角star按钮即可收藏
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B57C7B036-47C3-8569-919B-58603877EC20%7D.png?lastModify=1563973607)
[如何查看自己的收藏]
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B5E7E28CF-7B4E-2902-2B81-845146BD70A6%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B9CCE8CB9-4136-B3DF-B385-8F1815F034CD%7D.png?lastModify=1563973607)
关注
情景:张三关注了李四的项目,李四添加项目文件,张三的github主页会有如下展示:
复制克隆项目(Fork)
情景:张三fork了李四的项目,相当于张三复制了李四的项目,所以自己也单独有了一个一模一样的仓库(注:该仓库会声明来自于李四,但是独立存在)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B8E076AEE-F07A-242A-4B6A-A18FD0A088A2%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B7F4B3D50-9CA7-CED1-834C-2C40707FCC72%7D.png?lastModify=1563973607)
验证:fork后的仓库是否单独存在
先创建一个file在刚刚fork的仓库里面
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B1F6E3326-2E7C-4AC0-6AB2-41FE4297B40C%7D.png?lastModify=1563973607)
然后会发现在自己的仓库里面,因此,该仓库是独立的
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BA93759BE-DD8D-CA37-F907-9CB7C57CF167%7D.png?lastModify=1563973607)
发起请求(Pull Request)
情景:张三修改了fork的项目中的文件,希望更新到原来的仓库,这时候他要新建一个pull request
1)Git1 发起一个更新请求
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BB8031167-3466-7B6A-437F-B7E3AC1BA00E%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B9AC8693C-BBBD-DBE9-D7E8-96A2BCA26370%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B6FC59FDD-24B4-CCDC-C7B8-DE35B39F310D%7D.png?lastModify=1563973607)
2.7 开源项目贡献流程
1)新建Issue
提交试用问题或者建议或者想法
2)Pull Request
步骤:
- fork项目
- 修改自己仓库的项目代码
- 新建pull request
- 等待作者操作审核
三. Git安装和试用
目的
通过git管理github托管项目代码
下载安装
1)GIt官网下载:https://www.git-scm.com/download/win>
2)双击安装
3)选择安装的工作目录
4)选择组件
5)开始菜单目录名设置
6)选择使用命令行环境
7)以下三步默认,直接点击next
8)等待安装
9) 检验是否安装成功
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BE7A60121-3DF7-8EB8-D5DA-77C91F1442DF%7D.png?lastModify=1563973607)
四. Git基本工作流程
Git工作区域
向仓库中添加文件流程
五. Git初始化及仓库创建和操作
基本信息设置
-
设置用户名
git config --global user.name ‘itcastNetworkgit1’
-
设置用户名邮箱
git config --global user.name.email ‘1275121799@qq.com’
初始化一个新的Git仓库
-
创建文件夹
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BF1215AF8-A142-5182-2C98-FAC3EF78F23B%7D.png?lastModify=1563973607)
-
在文件内初始化git(创建git仓库)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B02D0E066-AA9F-5133-B29E-0298702F2FB2%7D.png?lastModify=1563973607)
如果看不见,则设置电脑显示隐藏文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BCDD57313-5F87-4C36-6946-8C0F1EF48534%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BC446BF2E-ABAC-7F67-CA50-E422322FF8B5%7D.png?lastModify=1563973607)
向仓库添加文件
1 | touch a1.py #创建a1.py文件到工作目录 |
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BC18E5D1E-02B1-BABE-B87A-697D7896E6C0%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B37D91352-4B29-6FD8-F77F-208D7169DE7A%7D.png?lastModify=1563973607)
修改仓库文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BA081C7C7-8F89-E615-2853-FDBD4661A153%7D.png?lastModify=1563973607)
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B1858819B-00E3-B4B8-5594-9DA9A0A189C0%7D.png?lastModify=1563973607)
删除仓库文件
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BB15239EE-BA14-5893-BF3F-6D9927684224%7D.png?lastModify=1563973607)
六. Git管理远程仓库
使用远程仓库的目的
作用:备份,实现代码共享集中化管理
Git克隆操作
目的
将远程仓库(github对应的项目)复制到本地
代码
1 | git clone 仓库地址 |
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B46A33395-D676-9951-98CE-B601976BBDDD%7D.png?lastModify=1563973607)
仓库地址由来
![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7B58288F22-6E3D-6A8D-7657-15853A6C27DC%7D.png?lastModify=1563973607)
将本地仓库同步到git远程仓库中
1 | git push |
思考:为什么无法同步?或没有权限
因为私有项目,没有权限,输入用户名密码,或者远程地址采用这种类型:
参考:https://blog.csdn.net/tichimi3375/article/details/79844514