Git的基本使用

学习git之前,我们需要了解一个非常重要的概念:==版本控制==

版本控制

什么是版本控制 版本迭代 版本管理器

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

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

简单地说,就是用于管理多人协同开发项目的技术。

多人开发必须使用版本控制,否则代价比较大!!!

常见的版本控制工具

主流的版本控制器有:

  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Sever)
  • Visual Studio Online

版本控制产品非常的多,现在影响力做大且广泛的是Git

版本控制分类:

1.本地版本控制

image-20210509222158122

记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。

2.集中版本控制

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

image-20210509222546125

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连接网络,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都 保存在单一服务器上,有很大风险这个服务器会崩溃造成数据的丢失。当然可以定期备份。代表产品:SVN、CVS、VSS。

3.分布式版本控制 Git

所有的版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连接网络时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,主要有一个用户的设备没有问题就可以恢复所有数据,但这增加了本地存储空间的占用。

(每个人都拥有全部代码!安全隐患)

image-20210509235617504

git是目前世界上最先进的分布式版本控制系统

git历 史

Git环境配置

下载慢,怎么办?

去找国内镜像网站

如淘宝:https://github.com/git-for-windows/git/releases/

清华大学镜像网站

如何卸载?

先清除环境变量,再卸载。环境变量只是为了全局使用而已。

启动git

Git Bash:Unix与Linux风格的命令行,使用最多,推荐最多。

Git CMD:Windows风格的命令行

Git GUI:图形界面的Git,不建议初学者使用,尽量先熟悉常用命令

基本的Linux命令学习

  • cd:改变目录
  • cd .. 回退上一级目录
  • pwd:显示当时所在目录的路径
  • ls(ll):都是列出当前目录中的所有文件,只不过ll列出的内容更加详细
  • touch:新建一个文件,rm index.js 就很吧 index.js文件删除
  • mkdir:新建一个目录,就是新建一个文件夹。eg:mkdir test
  • rm -r :删除文件夹,eg:rm -f test
1
rm -rf / #切勿在Linx中尝试!删除电脑中的全部文件
  • mv 移动文件 mv index.html src index.html 是我们要移动的文件,src是目标文件夹,必须保证文件和目标文件夹在同一目录下

  • reset 重新初始化终端/清屏

  • clear:清屏

  • history 查看历史命令

  • help 帮助

  • exit 退出

  • #“ 注释

Git配置

所有的配置文件都保存在本地。

查看配置:

1
git config -l

查看不同级别的配置文件:

1
2
3
4
#查看系统config
git config --system --list
#查看当前用户(global)配置
git config --global --list

Git相关的配置文件:

  • D:\Git\etc\gitconfig:Git安装目录下的gitconfig –system系统级
  • C:\Users\lenovo\ .gitconfig 只适用于当前登录用户的配置 –global

可以直接编辑配置文件,通过命令设置后会响应到这里。

设置用户名和邮箱(用户标识,必要)

1
2
git config --global user.name "你的名字" #名称
git config --global user.email "你的邮箱" #邮箱

Git基本理论(核心)

工作区域

image-20210511220058567

  • Workspace:工作区,就是平时存放项目代码的地方
  • Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。
  • Respository:仓库区(本地仓库),就是安全存放数据的位置,这里有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
  • Remote:远程仓库,托管代码的服务器,可以简单地认为是

.git 文件要先git init才有,而且这个是隐藏文件夹

工作流程

  1. 在工作目录中添加、修改文件
  2. 将需要进行版本管理的文件放入暂存区域
  3. 将暂存区域的文件提交到git仓库。

image-20210511222035462

Git项目搭建

创建工作目录与常用指令

工作目录(WorkSpace)一般是你希望Git帮助你管理的文件夹。可以是你的项目目录,也可以是空文件夹,建议不要有中文。

常用6指令:

image-20210513205020549

本地仓库搭建

创建本地仓库的方法有两种:

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

1
2
#在当前目录新建一个Git代码库
$ git init

2、执行后可以看到,仅仅在项目目录多出来一个.git目录,关于版本等所有信息都在此目录中。

克隆远程仓库

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

1
2
#克隆一个项目和它的整个历史(版本信息)
$ git clone [url]

2.去gitee或github上克隆测试。

Git文件操作

查看文件状态

文件四种状态:untracked,unmodify,modifie,staged

1
2
3
4
5
6
7
8
#查看指定文件状态
git status [filename]

#查看所有文件状态
git status

git add . #添加所有文件到暂存区
git commit -m "消息内容" #提交暂存区中的内容到本地仓库 -m 提交信息

忽略文件

有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等

在主目录下建立”.gitignore”文件,规则如下:

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

使用码云

  1. 注册登录码云,完善个人信息
  2. 设置本机绑定SSH公钥,实现免密登录。
  3. 将公钥信息public key添加到码云账号中即可。
  4. 使用码云建立一个自己的仓库。

IDEA中集成Git