git status 显示工作目录和暂存区的状态

本文介绍了gitstatus命令的用途,用于查看工作区和暂存区的状态,包括已暂存、未暂存及未跟踪的文件。通过--porcelain模式,可以获取简洁且稳定的输出,便于脚本解析。这一特性在自动化git工作流中尤其有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git status

什么是git status

官方文档:https://git-scm.com/docs/git-status

git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。 git status不显示已经commit到项目历史中去的信息。看项目历史的信息要使用git log.

总结:git status 命令用于查看在你上次提交之后是否有对文件进行再次修改。

当执行 git status 的时候,返回结果大致可分为3个部分:

  • 拟提交的变更:这是已经放入暂存区,准备使用 git commit 命令提交的变更
  • 未暂存的变更:这是工作目录和暂存区快照之间存在差异的文件列表
  • 未跟踪的文件:这类文件对于 Git 系统来说是未知的,也是可以被忽略的

查看工作区文件的状态

通常,我们需要查看工作区文件的状态,可以使用 git status:

[root@centos7 mygoapp]# git status
# 位于分支 file-boom
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#       新文件:    Makefile
#       删除:      internal/file-boom/server/config.go
#       新文件:    scripts/make-rules/common.mk
#       新文件:    scripts/make-rules/golang.mk
#
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#       修改:      .gitignore
#       修改:      Makefile
#       修改:      go.sum
#       修改:      internal/file-boom/app.go
#       修改:      internal/file-boom/options/server_run_options.go
#       修改:      internal/file-boom/run.go
#       修改:      pkg/errors/Readme.md
#       修改:      pkg/log/Readme.md
#       修改:      scripts/make-rules/common.mk
#       修改:      scripts/make-rules/golang.mk
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#       _output/
#       go1.15.5.linux-amd64.tar.gz
#       internal/file-boom/server/
[root@centos7 mygoapp]#

–porcelain 模式

通常,我们需要查看工作区文件的状态,可以使用 git status。但它输出了很多冗长的内容,可能我们只想关心文件及其状态。

我们可以执行带有 --porcelain 标志的 git status 命令,显示的信息如下:

[root@centos7 mygoapp]# git status --porcelain
 M .gitignore
AM Makefile
 M go.sum
 M internal/file-boom/app.go
 M internal/file-boom/options/server_run_options.go
 M internal/file-boom/run.go
D  internal/file-boom/server/config.go
 M pkg/errors/Readme.md
 M pkg/log/Readme.md
AM scripts/make-rules/common.mk
AM scripts/make-rules/golang.mk
?? _output/
?? go1.15.5.linux-amd64.tar.gz
?? internal/file-boom/server/
[root@centos7 mygoapp]#

–porcelain 标志使用场景

–porcelain 标志是用来生成脚本易于解析的输出的。假设您运行了一些自动化程序,在运行进一步的命令之前检查 git 仓库的状态。在这种情况下,您不希望在输出中包含帮助文本和终端颜色。

此外,你也不希望 git 版本之间的输出变化或不同。–porcelain 保证输出不会出现向后不兼容的变化,这样你的脚本就不会因为 git 更新而中断。

总结 :如果你要自动化 git 工作流,你可以使用 git status -porcelain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值