Git服务程序的基本使用
安装Git
yum install git -y配置Git
首次安装Git服务程序后需要设置下用户名称、邮件信息和编辑器,这些信息会随着文件每次都提交到Git数据库中,用于记录提交者的信息;
而Git服务程序的配置文档通常会有三份,针对当前用户和指定仓库的配置文件优先级最高:
Git配置文件
配置文件
作用
/etc/gitconfig
保存着系统中每个用户及仓库通用配置信息
/.gitconfig
/.config/git/config
针对于当前用户的配置信息
工作目录/.git/config
针对于当前仓库数据的配置信息
配置用户名称、电子邮件、默认文本编辑器
git config --global user.name "Xuhao Diao"
git config --global user.email "[email protected]"
git config --global core.editor vim
# 查看配置环境信息
git config --list提交数据
初始化指定目录为Git的工作目录
mkdir wills
cd wills/
git init将该文件添加到暂存区
echo "Hello Git" > readme.txt
git add readme.txt
echo "Something not important" >> readme.txt
git commit -m "add the readme file"查看当前工作目录的状态
git status查看当前文件内容与Git版本数据库中的差别
git diff readme.txt把文件提交到Git版本数据库
git add readme.txt
git commit -m "added a line of words"
git status设置要忽略上传的文件(写入到"工作目录/.gitignore"文件中)
配置写法
说明
*.a
忽略所有以.a为后缀的文件
!lib.a
但是lib.a这个文件除外,依然会被提交
build/
忽略build目录内的所有文件
build/*.txt
忽略build目录内以txt为后缀的文件
git.c
指定忽略名字为git.c的文件
touch git.c
vim .gitignore
git.c
git add .
git commit -m "add the .ignore file"一步到位提交数据
echo "Modified again" >> readme.txt
# 使用 -a 参数,Git会将以前所有追踪过的文件添加到暂存区后自动的提交
git commit -a -m "Modified again"强制添加文件
git add -f git.c重新提交一次
git commit --amend
:wq移除数据
添加文件到暂存区
touch file1
git add file1
git status将该文件从Git暂存区域的追踪列表中移除(并不会删除当前工作目录内的数据文件)
git rm --cached file1
ls
git status将文件数据从Git暂存区和工作目录中一起删除
git add .
git rm -f file1
ls
git status移动数据
方法一:使用 git mv 命令
git mv readme.txt introduction.txt
ls
git status
git commit -m "rename readme.txt"方法二:重命名、再删除git跟踪、再添加、提交
mv introduction.txt readme.txt
git rm introduction.txt
git add readme.txt
git commit -m "rename introduction.txt"历史记录
查看所有提交的历史记录
git log查看最近2条历史记录
git log -2查看最近一次提交的内容的差别
git log -p -1查看最近两次的增改行概要信息
git log --stat -2以每行显示一条提交信息显示历史记录
git log --pretty=oneline以更详细的模式输出最近两次的历史记录
git log --pretty=fuller -2使用format参数来指定具体的输出格式(便于后期编程的提取分析)
写法
说明
%s
提交说明
%cd
提交日期
%an
作者的名字
%cn
提交者的姓名
%ce
提交者的电子邮件
%H
提交对象的完整SHA-1哈希字串
%h
提交对象的简短SHA-1哈希字串
%T
树对象的完整SHA-1哈希字串
%t
树对象的简短SHA-1哈希字串
%P
父对象的完整SHA-1哈希字串
%p
父对象的简短SHA-1哈希字串
%ad
作者的修订时间
git log --pretty=format:"%h %cn"还原数据
修改文件并提交Git版本数据库
echo "Git is a version control system" >> readme.txt
git commit -a -m "Introduce software"
git log --pretty=oneline还原到上一个版本
git reset --hard HEAD^
# 上一个提交版本会叫HEAD^
# 上上一个版本则会叫做HEAD^^
# HEAD~5来表示往上数第五个提交版本
cat readme.txt还原到最新提交的版本
# 此命令查不到 git log --pretty=oneline
# 需使用:
git reflog
# 找到历史还原点的SHA-1值
git reset --hard 5d3c875
cat readme.txt还原某个文件内容
echo "Some wrong words" >> readme.txt
git checkout -- readme.txt
cat readme.txt
# checkout 规则是如果暂存区中有该文件,则直接从暂存区恢复;
# 如果暂存区没有该文件,则将还原成最近一次文件提交时的快照。标签管理
当版本仓库内的数据有个大的改善或者功能更新,我们经常会打一个类似于软件版本号的标签,这样通过标签就可以将版本库中的某个历史版本给记录下来,方便我们随时将特定历史时期的数据取出来用,另外打标签其实只是向某个历史版本做了一个指针
给最近一次提交的记录打个标签
git tag v1.0查看所有的已有标签
git tag查看此标签的详细信息
git show v1.0创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag -a v1.1 -m "version 1.1 released"删除标签
git tag -d v1.0
# 我们为同一个提交版本设置了两次标签,来把之前的标签v1.0删除Last updated