Git版本控制工具
学习前言
在项目开发中,总是需要多个人同时对一个项目进行修改,如何高效快速地进行修改,且控制各自修改的版本不会和他人的进行重叠,这就需要用到Git分布式版本控制器了
作用
解决了一致性,并发性,安全性,实现了如
- 代码还原
- 并行开发
- 统计工作量
- 版本控制
这些功能,目前为主流版本控制器,除此之外,还有SVN,CVS,VSS,TF等工具来实现版本的控制
分布式版本控制的好处
每个人都可以从同一个远程仓库中将所需修改的文件,push到自己的本地仓库中,再调到工作区进行修改,而且本地仓库中也有一个完整的项目程序,避免了如果服务器崩溃或者远程仓库出故障而导致项目代码全部丢失,也可以高效地进行版本控制。
缺点
会增加本地存储的占用
Git的历史
Linux内核开源项目有许多参与者,但维护Linux需要进行大量的补丁以及保存归档的操作,因此项目组启用了一个其他公司所设计的分布式版本控制系统BitKeeper,但后来该公司收回了Linux内核开源项目免费使用该系统的权力,导致linux项目组需要另找一个分布式版本控制系统
因此,Linux的缔造者,Linus Torvalds花费了几周时间,做出了属于自己的版本系统,也就是Git
Git安装
Git Bash 推荐
Git CMD Windows风格的命令行
Git GUI图形界面,不建议初学者使用,而且该GUI也并不好用,不美观
Git如何使用
Git的粗略工作流程
图解:
linux常见命令
命令 | 作用 |
---|---|
ls/ll | 查看当前目录 |
cat | 查看文件内容 |
touch | 创建文件 |
tail n 1 | 以顺序或者倒序的方式查看文件中的某一行内容 |
yy | 复制当行 |
dd | 剪切当行 |
p | 粘贴 |
vim | 编辑文件(若没有该文件则创建)进入后默认为命令模式 |
i | 进入输入模式 |
命令 | 作用 |
---|---|
Esc | 退出输入模式 |
:wq | 在命令模式下保存修改并退出文件 |
Git-命令
-
git config --global user.name/email 用户名/邮箱 ==> 设置用户签名
在刚开始安装git时需要进行设置,以后通过同样的命令可以进行修改
-
git init ==> 初始化本地仓库
-
git status ==> 查看本地仓库状态
-
git add 文件 ==> 添加到暂存区
-
git rm-cached 文件 ==> 将某文件从暂存区中删除
只是删除了在暂存区中的数据,工作区中的文件没有被删除
-
git commit -m “日志信息” 文件 ==> 将暂存区文件提交到本地仓库
-
git reflog ==> 刷新并查看日志信息
-
git log ==> 查看详细的日志信息
[!IMPORTANT]
在进行Git命令操作中,我创建了两个
.txt
文件
初始化本地库
获得目录的管理权限,后续可以进行Git命令操作
查看本地库状态
第一行:目前处于哪个分支
第二行:是否提交过文件到本地仓库中
第三行:是否有东西可以提交(包含被追踪或未被追踪的文件)
----被追踪标识文件被放到了暂存区
添加文件到暂存区中
警告内容为当文件被再次创建及修改时,换行命令LF
会改为CRLF
由于是在Windows环境中使用git,因此换行命令会改为windows中用的命令
将暂存区文件提交到本地仓库中
当hello.txt
被push到本地仓库后,没有被修改的工作区的源文件显示无需提交到本地仓库中,因为已经有了一个保存的版本在本地仓库中了
git log显示了详细的关于本地仓库文件的日志信息,包括上传时的msg
,设置的用户签名以及上传的时间
区别
上下两个黄色字样的字体分别为完整的版本号和精简的版本号
当有提交到了本地仓库的文件,且后续被修改了,若没有存到暂存区中,则会出现红色字样的modiffied: hello.txt
存到暂存区后,则会显示出绿色字样
当再次上传到本地仓库,就会把之前同名的文件给更改,并替换对应的日志信息
[!IMPORTANT]
HEAD -> master
指针永远指向最新的版本文件
版本穿梭
git reset --hard 版本号
--可以先通过git reflog
查看想要回复到的版本的版本号
【HEAD->master会指向新的版本】