Git命令详解(git statusgit loggit commitgit stash)
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git命令详解(git statusgit loggit commitgit stash)相关的知识,希望对你有一定的参考价值。
git status -s命令
命令格式:
git status -s
# 获取文件状态以更简洁的方式
# 等价于
git status --short
例子:
详解:
- ??标记:新添加的未跟踪文件前面会有红色的??标记,即没有执行git add .命令的文件。
- A标记:新添加到暂存区的文件前面会有绿色的A标记,即已经执行了git add .命令的文件。
- AM标记:A表示该文件加入到暂存区了,而M表示该文件被修改过了,修改后的文件还没有添加到暂存区。
git log命令
命令格式:
git log
# 查看所有提交过的版本的详细信息
git log --pretty=oneline
# 只显示版本号和提交时的备注信息
例子:
git reflog命令
命令格式:
git reflog
# 可以查看所有分支的所有操作记录(包括已经被删除的commit记录和reset的操作)
例子:
例如执行 git reset --hard HEAD~1,退回到上一个版本,然后执行git log命令只能查看到commit的记录,而git reflog可以查看到reset的记录以及被删除的commit记录。
git commit命令
git commit -m 'message'命令
命令格式:
git commit -m 'message'
# 提交暂存区的文件到本地仓库
# 也可以不加-m参数,即直接git commit命令,会出现一个vim编辑器,可以输入提交描述
例子:
与Linux的命令行相似,点击Esc键,输入:wq退出。
git commit -a -m 'message'命令
命令格式:
git commit -a -m 'message'
# 在添加文件到暂存区的同时提交文件到本地仓库,其中'message'是自定义的文件描述
# 必须保持上面的格式,而git commit -m -a 'message'不得行会报错
# 等价于下面两个命令
git add .
git commit -m 'message'
例子:
git commit --amend命令
命令格式:
git commit --amend
# 功能1:会出现一个编辑器,然后可以修改上一次的提交信息,按键盘上的Insert键进行插入,修改完成后按Esc键并输入:wq保存退出
# 功能2:在进行一次commit提交后,输入该命令,可以把当前提交算到上一次提交中,也就是说两次commit提交,只算了一次commit,只有一次commit提交信息
功能1例子:
就会发现commit提交的信息被改变了
功能2例子:
在下图中可以看到即使两次commit提交,但只有一次记录
输入该命令后可以看到该条记录下提交了两个文件
git stash命令
注:该命令主要用于解决文件冲突
git stash命令
命令格式:
git stash
# 保存当前工作进度,会把暂存区和工作区的改动保存起来
例子:
(cat abc.txt命令是Linux命令,查看一个文件的内容)
(再执行git stash命令,保存工作区的修改)
就可以发现abc.txt内容变成了上次commit提交后的内容了,而且git status非常干净没有任何需要提交的。
git stash save 'message'命令
命令格式:
git stash save 'message'
# 同git stash功能一样,但可以保存一些message注释
# 'message'就是注释内容
例子:
git stash list命令
命令格式:
git stash list
# 显示保存进度的列表
例子:
git show stash@{0}命令
命令格式:
git show stash@{0}
# 查看最后一次stash保存
例子:
git stash --help命令
命令格式:
git stash --help
# 查看git stash的帮助命令
例子:
会打开浏览器,弹出一个网页,是帮助是说明文档
git stash pop [-index] [stash_id]命令
命令格式:
git stash pop [--index] [stash_id]
# 恢复进度到工作区,[-index]和[stash_id]是两个非必选项参数
git stash pop
# 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index
# 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{stash_id}
# 恢复指定的进度到工作区。stash_id是通过git stash list命令得到的通过git stash pop命令恢复进度后,会删除当前进度。其中1可以是其他数字
例子:
- git stash pop例子
- git stash pop --index例子
- git stash pop stash@{1}
git stash apply [-index][stash_id]命令
命令格式:
git stash apply [-index][stash_id]
# 除了不删除恢复的进度之外,其余和git stash pop 命令一样。
例子:
git stash drop [stash_id]命令
命令格式:
git stash drop [stash_id]
# 删除一个存储的进度。如果不指定stash_id,则默认删除最新的存储进度。
# stash_id是可选参数
例子:
git stash clear命令
命令格式:
git stash clear
# 删除所有存储的进度
例子:
以上是关于Git命令详解(git statusgit loggit commitgit stash)的主要内容,如果未能解决你的问题,请参考以下文章