git 常用命令讲解
git 常用命令讲解
文件的几种状态
- 已提交(commited/unmodified),已被保存在本地
- 已修改(modified),已修改,未保存
- 已暂存(staged),下次提交将保存
- 未跟踪(untracked),新建文件为未跟踪
![]()
git 基础命令
- git config –global user.name “your name”
- git config –global user.email “your email”
- git clone 从远程克隆代码
- git add files将文件加入到暂存区
- git status 查看工作区文件状态
- git commit 提交暂存区文件
- git commit –amend 撤销上一次的提交
- git show id 查看某次修改的内容
- git diff file 查看当前文件和暂存区文件差异
- git diff –staged 比较暂存区和版本库差异
- git diff id1 id2 查看某2次提交的差异
- git log 查看提交记录
- git log file 查看文件的提交记录
- git log -p file查看文件提交记录差异
- git log -p 2查看最近两次提交差异记录
- git log –stat 查看所修改文件
- git log –pretty=oneline/short/full/fuller
- git rm file 从版本库中删除文件
- git rm –cached file 从版本库中删除跟踪,但不删除文件
- git reset file 撤销提交,从暂存区恢复文件到unstage
- git reset –hard 撤销提交,恢复到最近提交的一次状态,放弃修改
- git revert $id 用于直接取消指定某一次的提交,并且会形成两个历史记录
关于分支
1、创建分支
- git branch 分支名 创建新的分支
- git checkout 分支名 切换到对应分支
- git fetch origin master:tmp 获取最新的代码到tmp分支
- git checkout -b 分支名 创建分支并切换到对应分支;相当于:git - branch + git checkout
注:切换分支前将先前分支的修改commit
2、查看分支
- git branch 查看本地分支
- git branch -r 查看远程分支
- git branch -v 查看各个分支最后一个提交对象的信息
- git branch –merged 筛选出你已经与当前分支合并的分支
- git branch –no-merged 筛选出尚未与当前分支合并的分支
3、合并分支
合并分支到master分支
- git checkout master
- git merge 需要合并的分支名
4、远程分支
- 推送本地分支
git push origin 分支名- 获取远程分支更新
git pull origin 分支名- 删除远程分支
git push origin :分支名- 克隆远程分支到本地分支
git checkout -b 本地分支名 origin/远程分支名
关于标签
1、列出标签
- git tag —–列出所有的标签
- git tag -l ‘过滤信息’ —–列出指定条件过滤的标签
例如:
git tag -l ‘a*’ 代表列出以a开头的标签名对应的所有标签
2、创建标签
Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。
一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。
然而,附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。 通常建议创建附注标签,这样你可以拥有以上所有信息;但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存那些信息,轻量标签也是可用的。
2.1创建轻量标签
- git tag 标签名
- 创建附注标签
git tag -a 标签名 -m ‘标签描述信息’- 后期打标签:对先前提交的某个commit进行打标签的操作
git tag -a 标签名 -m ‘标签描述’ 对应commit的校验和(或部分校验和)
3、查看某个标签信息
git show 标签名
4、检出标签
git checkout -b [分支名] [标签名]
5、共享标签(提交标签到远程服务器)
git push origin [标签名]
git push origin –tags 提交所有不在远程仓库的标签
6、删除本地标签
git tag –d [标签名]