1.什么是git?
2.什么是版本控制系统?
3.什么是分布式版本控制系统?
4.Git的功能特性
1.安装git
[root@server1 ~]# yum install -y git
2.创建我们的本地仓库,并且初始化
[root@server1 ~]# mkdir demo #这里创建的版本库的名字为demo
[root@server1 ~]# cd demo/
[root@server1 demo]# ls -a
. ..
[root@server1 demo]# git init #进行初始化,需要在版本库目录中(这里的版本库目录为demo
Initialized empty Git repository in /root/demo/.git/
[root@server1 demo]# l.
. .. .git
[root@server1 demo]# ls .git/
branches config description HEAD hooks info objects refs
可以发现当前目录下多了一个.git的目录,这个目录是Git来管理版本库的,一般不要手动修改这个.git目录里面的文件。
3.添加用户信息
初始化完后,接下来就要设置用户名和邮件地址,每次Git提交都会附带上这些信息,其实这些信息可以说时仓库所有者的标签,也可以说是联系人信息
[root@server1 demo]# git config --global user.name peng
[root@server1 demo]# git config --global user.email peng.redhat.com
[root@server1 demo]#
[root@server1 demo]# cat ~/.gitconfig
[user]
name = peng
email = peng.redhat.com
4.创建文件,查看仓库文件状态
[root@server1 demo]# touch file1
[root@server1 demo]# echo redhat > file1
[root@server1 demo]# git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# file1
nothing added to commit but untracked files present (use "git add" to track)
[root@server1 demo]# git status -s
?? file1 ##新添加的未跟踪的文件前面有??标志
5.添加文件,也就是把文件放到暂存区
[root@server1 demo]# git add file1
[root@server1 demo]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: file1
#
[root@server1 demo]# git status -s
A file1 ##A表示已经添加到暂存区了
6.提交更改,实际上就是把暂存区的所有内容提交到当前分支
root@server1 demo]# git commit -m "add file1"
[master (root-commit) 59ef986] add file1
1 file changed, 1 insertion(+)
create mode 100644 file1
[root@server1 demo]#
[root@server1 demo]# git status -s ##提交完后我们就会发现状态栏就没有文件了
[root@server1 demo]#
7.git status的状态显示分类
8.忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。
9.版本回退
像这样,不断对文件进行修改,然后不断提交修改到版本库里,Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
(1) git checkout – file
[root@server1 demo]# echo pengpeng >> file1
[root@server1 demo]# cat file1
redhat
snow
hello
pengpeng
[root@server1 demo]# git checkout -- file1
[root@server1 demo]# cat file1
redhat
snow
hello
[root@server1 demo]# git status
# On branch master
nothing to commit, working directory clean
(2) git log命令显示从最近到最远的提交日志
(3)git log --pretty=oneline查看简略日志信息
(4) git reflog查看历史记录
(5) git reset --hard HEAD^
上一个提交状态就是HEAD,上上一个提交状态就是HEAD^
(6) git reset --hard … 回退到指定状态
10.删除后恢复
删除后没有提交,直接:git checkout – file即可
删除且提交后: git reset --hard 指定状态