1.下载安装:
yum install git
2.查看当前git版本:git --version
3.初始化git版本库:
创建一个test1目录,复制一些文件做测试使用
在test1目录执行git init 将当前目录初始化为git仓库目录
执行ls -a 可以看到已经生成了.git隐藏版本仓库目录
4.配置config文件
git的配置文件有三种:
a.某个仓库特有的配置文件,test1/.git/config
b.全局配置文件,对当前用户的所有git都生效,在~/.gitconfig,一般都是配置这个级别的文件
c.系统级别的配置文件,/etc/git/gitconfig
在使用中,一般配置git 全局即可.
使用git config --global user.name xxxx
git config --global user.email xxx@xxx.com
一般只需配置这2个。
使用git config -l 查看git 配置
5.git add :暂存文件
git仓库分为索引区也称为暂存区,另一个是对象库及版本库。
使用git add 命令就是讲工作目录中的某个文件或所有文件添加至暂存区:
git add test 存放单个文件
git add . 将当前工作目录中的所有文件添加至暂存区
使用git status 查看暂存区的文件
6 git ls-files -s查看暂存区文件信息,权限,hash对象名,暂存号,及原始文件
7.git ls-files -o:查看当前工作目录中有哪些文件处于未被追踪状态的,即没有使用git add 添加到版本库中的文件或者是属于.gitignore中的文件
8.gitignore文件:
在当前git工作目录中创建vim .gitignore ,在.gitignore中定义的文件在使用git add 命令时将不会被追踪至git仓库,可定义单个文件,如1.txt,或者某个目录如pam.d/,也可以支持通配符,*.jpg
9.git cat-file -p 文件hash码 :查看文件内容:
hash码至少4位,
10.git hash-object xxx:使用sha1算法计算某文件的hash:
11.git rm :删除文件及暂存区中的文件信息
git rm 1.txt
要想只删除暂存区中的文件信息,使用git rm 2.txt --cached
12.git mv :修改文件信息及暂存区中的文件对象信息
git mv 1.txt 2.txt
13.git commit -m 'xxxxxx':提交一次git版本并备注好信息,-m 为必须的参数,git commit -m 'v1.0.1'
14.git log :查看git commit日志
其中 commit信息非常有用
15.git 引用:
git 会自动维护几个特定的特殊符号引用:
HEAD:始终指向当前分支的最近一次提交或检出的其他分支的最近一次提交
ORIG_HEAD:合并操作时,新生成的提交的上一次提交保存在此引用中
MEGER_HEAD:合并操作时,其他分支的上一次提交
相对提交名:
^:如v6^1,表示合并之前的v6上一次commit,v6^2,合并后的另一个分支的上一次commit
~:v6~1,当前commit的上一次提交,v6~2,当前commit的上一次的上一次提交
16.git diff :git中的比较,注意,工作目录中未被追踪的文件将不会被git比较
- git diff : 当前工作目录内容与索引暂存区的文件进行比较
17.git diff HEAD:当前工作目录与最近一次提交进行比较
git diff HEAD
18.git diff --cached:当前索引暂存区与最近一次提交比较
19.git diff commit1 commit2 :
将任意两次commit进行比较,使用git log 查看commit ID
20.git reset:撤销之前的操作
git reset --soft commit1 :将HEAD引用指向特定的提交,但不影响索引区和工作目录
git reset --mixed commit2:将HEAD引用指向特定的提交,并将索引暂存区内容改变为指定提交快照,但不改变工作目录.
git reset --hard commit3:将HEAD引用指向特定的提交,并将索引暂存区内容改变为指定提交快照,会改变工作目录内容,注意该选项有可能会引起当前目录的某些文件内容丢失!!!!慎用!!!
想查看某个commit的ID可以去.git/logs/refs/heads查看文件信息
如
git reset --hard HEAD^ 恢复到当前commit的上一次提交
git reset --soft HEAD~
21.git reset HEAD file1 将当前索引区的某一文件给删除。