目录
- 1.Git基础命令
-
- [1.1 创建版本库](#1.1 创建版本库)
- [1.2 添加文件和修改提交文件](#1.2 添加文件和修改提交文件)
- [1.3 版本回退](#1.3 版本回退)
-
- 1.3.1日志查看
- [1.3.2 版本回退和撤销](#1.3.2 版本回退和撤销)
- [1.4 删除文件](#1.4 删除文件)
- [2. Git配置信息Config](#2. Git配置信息Config)
-
- [2.1 config概述](#2.1 config概述)
- [2.2 config修改](#2.2 config修改)
- [3. .gitignore文件](#3. .gitignore文件)
1.Git基础命令
1.1 创建版本库
创建一个版本库也非常简单,如下我是F盘下 目录下新建一个GitTest2版本库。
右键通过命令行的方式打开窗口
通过命令 git init 把这个目录变成git可以管理的仓库,如下
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
这时候你当前GitTest2目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件 ,否则,会把git仓库给破坏了。.git里面内容如下:
1.2 添加文件和修改提交文件
首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等 ,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化 ,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
只能查看文本文件内容的修改,不能查看图片等二进制文件等修改内容。
1.创建文件test1.txt, 此刻文件在工作区(WorkSpace)
使用i或者a命令进入编辑状态。
通过git status
可以查看文件追踪的情况
红色的文件处于工作区,绿色的文件处于暂存区。
2.使用命令 git add test1.txt
添加到暂存区里面去。
如果要提交多个文件,我们可以在add后面指定文件的列表,git add test2.txt test3.txt
。
创建test2.txt和test3.txt文件:
如果想要添加工作区所有文件到暂存区 git add .
我们可以通过提示的话来撤销回工作区 git rm --cached readme.txt
3.提交文件到主分支git commit -m 'first commit'
现在我们已经提交了一个test.txt文件了,我们下面可以通过命令git status
来查看是否还有文件未提交
注意:注释是必须要写的。
1.3 版本回退
1.3.1日志查看
现在我已经对test.txt文件做了多次次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log
演示如下所演示
git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交如果嫌上面显示的信息太多的话,我们可以使用命令 git log --pretty=oneline
演示如下:
git log --pretty=oneline
:是用来简化输出日志的内容,会简化作者和提交时间等信息。
1.3.2 版本回退和撤销
修改test1.txt文件的内容为如下:
1.版本回退
第一种方式:
现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令,第一种是:git reset --hard HEAD^
那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推 。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100
即可。未回退之前的test1.txt内容如下:
使用git reset --hard HEAD^
:
第二种方式:
利用git status
查看每一个版本的唯一对应的提交哈希,根据提交哈希就可以回退到对应的位置。
powershell
git status

只用拷贝提交哈希的前七位就可以回退到对应的位置
powershell
git reset --hard 提交哈希(提交哈希的前七位)
1.4 删除文件
一般情况下,可以直接在文件目录中把文件删了,或者使用如上rm命令:rm b.txt ,如果我想彻底从版本库中删掉了此文件的话,可以再执行commit命令 提交掉。
powershell
git rm test.txt

我们发现删除的文件直接进入暂存区(此刻需要注意,如果使用rm删除不在暂存区,需要git add
才会进入暂存区。如果进入暂存区可以退回工作区,使用下面命令 git reset HEAD test.txt
),提交之后文件被删除。
git rm 之后不是真正的删除,只有git commit之后才是真正的删除
2. Git配置信息Config
2.1 config概述
在git中,我们使用git config 命令用来配置git的配置文件,git配置级别主要有以下3类:
1、仓库级别 local 【优先级最高】
2、用户级别 global【优先级次之】
3、系统级别 system【优先级最低】
git 仓库级别对应的配置文件是当前仓库下的.git/config
git 用户级别对应的配置文件是用户宿主目录下的~/.gitconfig
git系统级别对应的配置文件是git安装目录下的 /etc/gitconfig
当然我们可以在cmd命令提示符中输入以下查看配置信息:
查看仓库级别:git config --local -l
查看用户级别:git config --global -l
查看系统级别配置项:git config --system -l
2.2 config修改
演示修改用户名和邮箱:
powershell
git config --global user.name "renliang"
powershell
git config --global user.email "renliang@126.com"
注意不要手动修改 每个级别的配置文件,要用命令。
对于git来说,配置文件的权重是仓库>全局>系统。Git会使用这一系列的配置文件来存储你定义的偏好,它首先会查找/etc/gitconfig文件(系统级),该文件含有对系统上所有用户及他们所拥有的仓库都生效的配置值。接下来Git会查找每个用户的~/.gitconfig文件(全局级)。最后Git会查找由用户定义的各个库中Git目录下的配置文件.git/config(仓库级),该文件中的值只对当前所属仓库有效。
3. .gitignore文件
在项目中,我们可能一起提交多个文件
· git add -A
提交所有变化
· git add -u
提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)(被删除的也不计算在内,因为被删除的直接到缓存区)
· git add .
提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
此时我们可以创建一个名为 .gitignore 的文件 ,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。
注意:在windows下可以创建文件名为.gitignore.,保存之后系统会自动重命名为 .gitignore
总结:.gitignore文件就是用来忽略那些不想让git维护的文件,被写道.gitignore文件内之后,git命令会对其失效。
使用时查询相对应的模板就可以。
例如;java的通用模板
powershell
#java
*.class
#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/
#eclipse ignore
.settings/
.project
.classpatch
#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws
# temp file
*.log
*.cache
*.diff
*.patch
*.tmp
# system ignore
.DS_Store
Thumbs.db