Git常用命令
目录
- 1.常见版本管理工具
- 2.Git安装配置
- 3.初始化Git工作目录
- 4.常规使用(创建数据-提交数据)
- 5.git commit -a参数
- 6.删除暂存区数据
- 7.重命名暂存区数据
- 8.查看历史记录
- 9.还原历史数据
- 10.还原未来数据
- 11.标签使用
- 12.对比数据
- 13.分支结构
1.常见版本管理工具
1.1.SVN
集中式的版本控制系统,只有一个中央数据仓库,如果中央数据仓库挂了或者不可访问,所有的使用者无法使用SVN,无法进行提交或备份文件。
1.2.Git
分布式的版本控制系统,在每个使用者电脑上就有一个完整的数据仓库,没有网络依然可以使用Git。当然为了习惯及团队协作,会将本地数据同步到Git服务器或者GitHub等代码仓库。
2.Git安装配置2.1.系统环境
CentOS7.4防火墙和selinux关闭
2.2.安装Git
yum install -y git
2.3.Git全局配置
git config --global user.name "847430005" # 配置git使用用户 git config --global user.email "847430005@qq.com" # 配置git使用邮箱 git config --global color.ui true # 语法高亮 git config --list # 查看全局配置3.初始化Git工作目录
mkdir git_data cd git_data/ # 初始化 git init # 查看工作区状态 git status4.常规使用(创建数据-提交数据)
touch README git status git add README git status git commit -m 'first commit' # git commit提交暂存文件至本地仓库 git push # 提交本地仓库至远程仓库5.git commit -a参数
5.1.添加新文件
git add * 添加到暂存区域 git commit 提交git仓库 -m 后面接上注释信息,内容关于本次提交的说明,方便自己或他人查看
5.2.修改或删除原有文件
常规方法
git add * git commit
简便方法
git commit -a -m “注释信息” -a 表示直接提交6.删除暂存区数据
没有添加到暂存区的数据直接rm删除即可。
已经添加到暂存区数据:
git rm --cached database # 将文件从git暂存区域的追踪列表移除(并不会删除当前工作目录内的数据文件) git rm -f database # 将文件数据从git暂存区和工作目录一起删除7.重命名暂存区数据
没有添加到暂存区的数据直接mv/rename改名即可。
已经添加到暂存区数据:
git mv README NOTICE8.查看历史记录
git log # 查看提交历史记录 git log -2 # 查看最近几条记录 git log -p -1 # -p显示每次提交的内容差异,例如仅查看最近一次差异 git log --stat -2 # --stat简要显示数据增改行数,这样能够看到提交中修改过的内容,对文件添加或移动的行数,并在最后列出所有增减行的概要信息 git log --pretty=oneline # --pretty根据不同的格式展示提交的历史信息 git log --pretty=fomat:"%h %cn" # 查看当前所有提交记录的简短SHA-1哈希字串与提交者的姓名,其他格式见备注。9.还原历史数据
Git服务程序中有一个叫做HEAD的版本指针,当用户申请还原数据时,其实就是将HEAD指针指向某个特定的提交版本,但是因为Git是分布式版本控制系统,为了避免历史记录冲突,故使用了SHA-1计算出十六进制的哈希字串来区分每个提交版本,另外默认的HEAD版本指针会指向到最近的一次提交版本记录,而上一个提交版本会叫HEAD,上上一个版本则会叫做HEAD^,当然一般会用HEAD~5来表示往上数第五个提交版本。
git reset --hard HEAD^ # 还原历史提交版本上一次 git reset --hard 3de15d4 # 找到历史还原点的SHA-1值后,就可以还原(值不写全,系统会自动匹配)10.还原未来数据
什么是未来数据?
就是你还原到历史数据了,但是你后悔了,想撤销更改,但是git log已经找不到这个版本了。
git reflog # 查看未来历史更新点11.标签使用
git tag v1.0 # 当前提交内容打一个标签(方便快速回滚),每次提交都可以打个tag。 git tag # 查看当前所有的标签 git show v1.0 # 查看当前1.0版本的详细信息 git tag v1.2 -m "version 1.2 release is test" # 创建带有说明的标签,-a指定标签名字,-m指定说明文字 git tag -d v1.0 # 我们为同一个提交版本设置了两次标签,删除之前的v1.012.对比数据
git diff可以对比当前文件与仓库已保存文件的区别,知道了对README作了什么修改后,再把它提交到仓库。
git diff README13.分支结构
在实际的项目开发中,尽量保证master分支稳定,仅用于发布新版本,平时不要随便直接修改里面的数据文件。
干活都在dev分支上。每个人从发dev分支创建自己个人分支,开发完合并到dev分支,最后dev分支合并到master分支。
13.1.创建分支
git branch linux # 创建分支 git checkout linux # 切换分支 git branch # 查看当前分支情况,当前分支前有*号
13.2.合并分支
想把linux的工作成果合并到master分支上
先切换到master分支
git merge linux # 合并linux分支至master
查看合并的文件
git branch -d linux # 确认合并完成后,可以放心地删除linux分支