Git学习笔记

一、Git简介

1.1Git简介

Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 SVN、Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

1.2版本控制

版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本控制的软件工程技术。

  • 实现跨区域多人协同开发
  • 追踪和记载一个或多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发,提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

1.3版本控制方式

1.3.1集中式

在这里插入图片描述

  • 集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。
  • 多年以来,这已成为版本控制系统的标准做法。这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
  • 事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。

1.3.2分布式

在这里插入图片描述

  • 客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
  • 分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
    服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
    每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

二、Git安装

2.1安装步骤

  • 百度搜git,官网下载
  • 或者百度淘宝的镜像安装,这样更快
  • 然后安装,疯狂点击next
  • 安装完后记得配置环境变量

2.2Git Bash

Unix和Linux风格的命令行,使用最多,推荐最多,我们的配置都是在Git Bash上通过命令实现的。

2.3配置

配置用户名和邮箱

任意右键Git Bash后输入以下命令配置

git config --global user.name zhou0521
git config --global user.email 875104357@qq.com

查看是否配置成功

在文件目录中搜索.gitconfig文件查看
或者Git Bash输入git config user.name/user.email
或者Git Bash输入git config --global --list

2.4工作机制

在这里插入图片描述
工作区:就是平时存放代码的地方
暂存区:用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表的信息
本地仓库:就是存放数据的位置,这里面有你提交到所有版本的数据。其中head指向你最新放入的仓库
远程仓库:托管代码的服务器,可以简单的认为是你项目组的一台用于远程数据交换的电脑

三、Git项目搭建

3.1本地仓库搭建

1.创建全新的仓库,需要用Git管理项目的根目录执行

在当前目录新建一个代码库
git init

2.执行后可以看到,仅仅在项目目录多出来一个.git目录,关于版本的所有信息都在这个目录里面

3.2克隆远程仓库

另一种方式是克隆远程目录,由于是将远程服务器上的仓库完全镜像一份至本地

克隆一个项目和他的整个代码历史(版本信息)
git clone [url]

四、Git基本命令

文件的4种状态

版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件还没提交上

  • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制。通过git add状态变为staged
  • Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中的完全一致,这种类型的文件有两种去处,如果他被修改,即变为modified状态,如果使用git rm移除版本库,即变为untracked状态
  • Modified:文件已经修改,仅仅只是修改,并没有进行其他的操作,这个文件也有两个去处,通过git add可以进入暂存staged状态,使用git checkout则丢弃修改过,返回到unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改
  • Staged:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodyfy,执行git reset HEAD filename取消暂存,文件状态为modified

查看文件状态

#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

#添加所有文件到暂存区
git add .

#提交暂存区中的内容到本地仓库(-m:提交信息)
git commit -m "信息内容"

忽略文件

有些时候我们不想把某些文件纳入版本控制当中,比如数据库文件,临时文件,设计文件等等
在主目录下建立’‘.gitignore’'文件,此文件规则如下:

  1. 忽略文件中的空行或以"#"号开始的行
  2. 可以使用Linux通配符。例如"*“代表任意多个字符,”?“代表一个字符,”[]“方括号代表可选字符范围,”{}"大括号代表可选的字符串等
  3. 如果名称的最前面有一个感叹号"!",表示例外规则,不会被忽略
  4. 如果名称的最前面是一个路径分隔符"/",表示要忽略的文件在此目录下,而子目录中的文件不忽略
  5. 如果名称的最后面是一个路径分隔符"/",表示要忽略的是此目录下该名称的子目录,而非文件(默认文件和目录都忽略)
#忽略所有 .txt 结尾的文件,这样的话上传就不会被选中
*.txt
#lib.txt 除外
!lib.txt
#仅忽略项目根目录下的 TODD 文件,不包括其他目录 temp
/temp
#仅忽略 build/ 目录下的所有文件
build/
#会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt

五、使用gitee(码云)

  1. 注册

  2. 设置本机绑定SSH公钥,实现免密码登录

    #进入 C:\Users\Administractor\.ssh
    
    #生成公钥
    
    ssh-keygen
    
  3. 将公钥信息public key添加到码云账户中即可

  4. 使用码云创建一个自己的仓库

六、IDEA集成Git

  1. 新建项目,绑定git
    在这里插入图片描述

  2. 修改文件,使用IDEA提交

1.添加到暂存区
2.commit提交
3.push到远程仓库

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值