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)的主要内容,如果未能解决你的问题,请参考以下文章

git 使用详解—— get log 查看提交历史

Git详解——git log

git 使用详解—— get log 查看提交历史

git 使用详解-- get log 查看提交历史

svn info对应git啥命令

git diff 命令详解