0%

一. 入门必备知识

(一)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主页会有如下展示:

img

img

img

复制克隆项目(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)

img

img

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)选择使用命令行环境

img

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工作区域

img

向仓库中添加文件流程

img

五. Git初始化及仓库创建和操作

基本信息设置

  1. 设置用户名

    git config --global user.name ‘itcastNetworkgit1’

  2. 设置用户名邮箱

    git config --global user.name.email ‘1275121799@qq.com

初始化一个新的Git仓库

  1. 创建文件夹

    ![img](file:///C:/Users/12751/Documents/Tencent%20Files/1275121799/Image/C2C/%7BF1215AF8-A142-5182-2C98-FAC3EF78F23B%7D.png?lastModify=1563973607)

  2. 在文件内初始化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
2
3
touch a1.py                     #创建a1.py文件到工作目录
git add a1.py #添加a1.py到暂存区
git commit -m ‘第一次提交文件’ #添加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管理远程仓库

使用远程仓库的目的

作用:备份,实现代码共享集中化管理

img

img

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