git简介:
详细介绍可访问官网:git介绍网址
或者廖雪峰老师的博客官网:廖雪峰官网
因为老师们的介绍已经很详细,所以在此不再班门弄斧的赘述
实验
- 实验环境
- rhel7.3
- git安装
linux系统会自带安装包yum install -y git
- 创建一个空目录,当成版本库
- 版本库的初始化:
git init
- 文件状态
把文件往Git版本库里添加的时候,是分两步执行的: - 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
- 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
HEAD为指针
- 创建文件
- 查看状态:
git status
可以查看到创建的是什么样的文件,接下来执行什么样的指令
- 或者用简单的输出
git status -s
可以查看到有什么样的状态
M README ## 右边的 M 表示该文件被修改了但是还没放入暂存区
MM Rakefile ## 在工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录
A lib/git.rb ## A 新添加到暂存区中的文件
M lib/simplegit.rb ## 靠左边的 M 表示该文件被修改了并放入了暂存区
?? LICENSE.txt ## ?? 新添加的未跟踪文件
-
新添加的未跟踪文件可以通过add添加到版本库的暂存区
git add readme.txt
-
提交后才真正进入版本库:
git commit -m “git add readme.txt”
此时提交失败,会要求你设置用户信息
-
设置用户邮箱
-
设置用户名
-
再重新提交后查看状态没有待操作的文件
-
此时会在用户主目录里面生成
.gitconfig
文件,这是在添加用户和邮箱时生成的 -
修改文件后查看状态,该文件被修改
-
add后查看,文件到到暂存区中
-
此时commit提交后,查看状态,此时放入到了版本库中
-
可以通过日志查看信息:
git log
-
也可以通过
git reflog
查看,更简洁,可以查看到提交的顺序
-
忽略文件:在提交代码是在目录下可能会产生临时文件或者隐藏文件等
-
先在版本库里创建隐藏文件和目录(目录里面要包含文件)来测试:
跟踪文件比较适合纯文本文件,一些视频、音频、office文件不太适合 -
此时创建的隐藏文件都可以查看到
-
创建隐藏的.gitignore文件
-
此时再查看状态,隐藏文化看不到了,就屏蔽了
-
版本的回退
-
创建文件并提交
-
更改创建的文件后再提交
-
文件提交后,可以通过reset+指针+文件,让其回到工作区
-
根据提示,撤销文件,此时查看状态已经回退
-
已经删除的文件的恢复
[root@server1 demo]# rm -f file1
[root@server1 demo]# git checkout -- file1
[root@server1 demo]# ls
file1
- 已经在版本库里的文件回退,最直接的回退方式是根据id回退
将之前创建的文件删除后提交,也可以再回复,直接跳转到id号即可
[root@server1 demo]# rm -f file1
[root@server1 demo]# git rm file1
rm 'file1'
[root@server1 demo]# git commit -m "del file11"
[root@server1 demo]# git reflog
decbdf4 HEAD@{0}: commit: del file11
ae89efc HEAD@{1}: reset: moving to ae89efc
d18d637 HEAD@{2}: reset: moving to HEAD^
ae89efc HEAD@{3}: commit: v3
d18d637 HEAD@{4}: commit: change file1
9bb7f82 HEAD@{5}: commit (initial): add file1
[root@server1 demo]# git reset --hard ae89efc ##回到v3的状态
HEAD is now at ae89efc v3
[root@server1 demo]# cat file1
westos