什么是Git
Git是一套程序源代码的分布式版本管理系统,最初用于管理Linux核心代码的开发,后来被多个开源工程采用,现在已经成为互联网协作开发的标准的源代码管理软件。(更加管理项目的开发流程)
Git初运行
~~~bash
$ git version//查看git的版本号
采用Git的云服务
- GitHub
- gitee(oschina)
- 等等
理解版本管理的流程
代码开发流程
- 系统开发,编写代码
- 提交代码给Git本地库
- 将代码提交到Git远程库,分享给团队其他人
- 从远程库获取最新代码
- 继续修改代码
- 重复第二步
Git基础概念(本期重点)
- 本地工作文件夹
- Git索引区(Stage)
- Git库(Repository)
- local:本地库
- remote:远程库(服务器端)
Git初始设定
建立一个Git库
~~~bash
$ git init//初始化
在当前文件下,建/初始一个Git的数据库。当前文件夹下所有的文件,都可以进行文件管理。
设置基础信息
~~~bash
$ git init//建一个库
$ git config -l//查看当前的设置
$ git config --global user.name "LogicVan"//进行用户名的设置
$ git config --global user.email "LogicVan@163.com"//Git是Internet分布式开发管理系统,Internet每个用户有邮件地址,进行邮箱的设置
$ git config --global color.ui true//设置编辑器的颜色为true,多在Linux和Mac系统设置,Windows里不多
$ git config -l
跳转到D盘下文件夹F下的Cloud文件夹
$ git init//建一个库
查看新建出来的.git文件下有什么
$ git config -l//查看当前的设置
由于我之前已经设置好用户名和邮箱了,就不再演示了。
方便的命令
~~~bash
$ git config --help
//$ git help config也可以
在Git Bash中敲下代码,再按下回车键,在浏览器中打开帮助文档(Windows下),若是Linux,则在当前命令行中打开。
第一次提交
实战演练
- 建立文件(本地工作区)
- 追加文件(索引区)
- 提交文件(本地库)
跳转到D盘下文件夹F下的Cloud文件夹
初始化Git库
在F/Cloud文件下,新建index.html文件,命令如下,也可手动自行创造。
使用git status命令,看一下当前文件夹的状态。此时index.htm文件未放入到索引区,显示红色。
使用git add index.htm命令,把当前红色文件放到索引区。
再次查看状态,index.htm变为绿色。本地有一个文件,修改完之后,提交到索引区,但是还没有向数据库提交。
**git commit -m “…”**提交,需要加一些备注,告诉数据库你改了些什么。
再次查看状态。index.htm并未消失,只是在数据库当中寄存了一个版本。
git log查看提交历史。
查看提交履历
知识点:git log命令的使用
实战演练
~~~bash
$ git log
$ nano index.htm
...
...
$ git add index.htm
$ git commit -m "added code"
$ git log
$ git log -n//n为1,2,3...,显示最近n次记录
$ git log --oneline//**将记录归为一行显示
$ git log -p//将记录详细显示
$ git log --stat//对每次提交的信息进行统计
$ git log --help//对于git log 选项的帮助文档
把握Git状态
知识点
- git status
- git checkout – [file]
- git restore / git restore –staged
修改先前的index.htm文件,多加一句“I love git”,检查状态。
- 使用git checkout – index.htm,回车,发现刚刚加上的“I love git”撤销了,回复之前的状态。
- 观察红字上方,有restore命令,于是git restore index.htm,也可以撤销,恢复刚刚状态。
如果加入了索引区add(没有提交commit),使用git checkout – [file]**是无效的。此时,git restore –staged index.htm即可将文件从索引区(暂存区)撤出,但是不撤销对 工作区 文件的更改**,即由git status命令得出的红字“被修改 且 被加入暂存区 ”被撤销。
详细内容:
git restore 和 git restore –staged 的区别(详细)
git restore 和 git restore –staged 的区别
比较修改内容
知识点
- git diff
- git diff –cached
实战演练
我们再次对上次的index.htm文件进行操作,增加一行“I love git”,查看状态,显示未添加(红字状态),图略。
此时,我们使用git diff命令,显示出我们修改的内容。
我们再将index.htm文件提交到索引区(暂存区)并查看状态,代码略,图略。
再次使用git diff命令,这时,我们发现没有任何反映和显示。
使用git diff –cached命令,则再一次显示出我们修改的内容。
Git文件操作
知识点
- git add [file1 file 2 …]
- git add . 将当前工作文件夹下的所有文件(包括子目录)添加到索引区
- git rm / git rm –cached 删除
- git mv 文件移动,更多用于文件更名
实战演练
我们再一次修改index.htm文件,并且创建style.css文件,查看状态。
使用**git add .**,提交所有文件到索引区。
使用git mv,进行文件更名。
使用git rm命令,将刚刚提交到索引区内的文件从中撤了出来。
Git忽略管理
设置Git忽略的文件,这些文件不参与Git库的提交和管理。
知识点
- . gitignore
详情查询:
实战演练
我们创建temp.txt文件,查看状态,显示红字,但是我们不想这个文件被管理,所以我们有创建了一个末尾文件名为“ . gitignore”的文件,查看状态,这两个文件目前都是被管理的( . gitignore文件肯定是需要管理的)
我们在 . gitignore文件中写入 “ *.txt “这一行,如图:
再次查看状态,这次只有 . gitignore文件被管理,达到了我们的目的。
更新最后的提交
知识点
- git commit -m “…”
- git cmmit –amend
- git commit -am “…” [–amend]