git和GitHub的使用(一)

目录

什么是git

Git的功能特性:

优点:

缺点:

版本控制工具应该具备的功能

Git安装与配置

Git结构

Git命令行操作

本地库初始化

设置签名

添加提交及查看状态操作


 

什么是git

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

git是分布式版本控制工具的代表。

什么是版本控制:

  • 版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
  • 版本控制透过文档控制(documentation control)记录程序各个模组的改动,并为每次改动编上序号。

分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

Git的功能特性:

从一般开发者的角度来看,git有以下功能:

1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。

2、在自己的机器上根据不同的开发目的,创建分支,修改代码。

3、在单机上自己创建的分支上提交代码。

4、在单机上合并分支。

5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。

6、生成补丁(patch),把补丁发送给主开发者。

7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。

8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:

1、查看邮件或者通过其它方式查看一般开发者的提交状态。

2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。

3、向公共服务器提交结果,然后通知所有开发人员。

优点:

  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。
  • 任意两个开发者之间可以很容易的解决冲突。
  • 离线工作。大部分操作在本地完成,不需要联网。
  • 完整性保证。
  • 分支操作非常快捷。
  • 尽可能添加数据而不是修改或删除数据。

缺点:

  • 资料少(起码中文资料很少)。
  • 学习周期相对而言比较长。
  • 不符合常规思维。
  • 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

 

版本控制工具应该具备的功能

协同修改

      ■多人并行不悖的修改服务器端的同一个文件。

数据备份

      ■不仅保存目 录和文件的当前状态,还能够保存每个提交过的历史状态。

版本管理

      ■在保存每 一个版本的文件信息的时候要做到不保存重复数据以节约存储空间,提高运行效率。这方面SVN采用的是增最式管理的方式,而Git采取了文件系统快照的方式。

权限控制

      ■  对团队中参与开发的人员进行权限控制。

      ■  对团队外开发者贡献的代码进行市核一一Git 独有。

历史记录

      ■  查看修改人、修改时间、修改内容、日志信息。

      ■  将本地文件恢复到某一个历史状态。

分支管理
      ■  允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

 

Git安装与配置

安装教程:https://www.cnblogs.com/minRose/p/10286473.html

官网地址:https://git-scm.com/download/win

建议使用谷歌浏览器下载,我使用360浏览器下载非常慢,使用谷歌浏览器就快多了。

安装完成后右键菜单会出现Git Bash Here 和 Git GUI Here

Git结构

git代码托管中心任务:维护远程库

本地库和远程库:团队内部协作和跨团队协助

 

Git命令行操作

本地库初始化

命令:git init

效果:初始化一个新的命令仓库 Initialized empty Git repository

注意:git初始化尝试的命令仓库是一个隐藏的资源

.git目录下存放的是本地库相关的子目录和文件,不要删除,也不要胡乱的修改。

设置签名

形式:

  • 用户名:aaa
  • Email地址:ajofjaof@aa.com

作用:区分不同开发人员的身份

辨析:这里设置的签名和登录远程库(代码托管中心)的账号和密码没有任何关系。

命令:

命令分为两个级别:

1、项目级别/仓库级别 :仅在当前本地库范围内生效 

  • git config user.name aaa
  • git config user.email ajofjaof@aa.com

2、系统用户级别:登录当前操作系统的用户范围  

  • git config --global user.name aaa
  • git config --global user.email ajofjaof@aa.com

优先级:就近原则,项目级别优先于系统用户级别,如果只有系统用户级别就以系统用户级别为准,如果二者都没有则是不允许的。

例子:

在.git文件夹中config中存放了刚刚设置的签名。可以使用cat去查看

创建系统用户级别的签名在查看时需要到用户目录下查看,而且.gitconfig是隐藏文件

添加提交及查看状态操作

查看状态 git status

创建一个文件,然后将文件添加入库

如果想要回到之前的状态,使用git rm --cached 文件名 就可以了

git commit 文件名 :将文件进行提交,将会跳转到一个界面,在这个界面可以对提交写注释,这其实是一个vim编辑器

使用shift+;,然后输入set nu能够显示行号

 输入的内容保存,第一次提交会作为一个根提交(root-commit),后面的d249083可以的作为一个粗略的版本号

 1 file changed, 79 insertions(+) 这个就是刚刚提交的信息状况

提交结束之后,输入git status之后就会显示没有什么可以提交的,工作树已经清空

如果对已经提交的文件做出修改,继续查看状态就会发现改变对于commit 

 

 

 

 

一起学习,一起进步 -.- ,如有错误,可以发评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

空城机

有钱捧个钱场,没钱捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值