📜  Git 工作目录中文件的状态(1)

📅  最后修改于: 2023-12-03 14:41:29.192000             🧑  作者: Mango

Git 工作目录中文件的状态

在使用 Git 进行版本控制的过程中,我们需要经常查看 Git 工作目录中文件的状态,以便于对这些文件进行合适的操作。Git 提供了 git status 命令来查看所处的工作目录中文件的状态。

工作目录中文件的状态

Git 中的工作目录中文件的状态主要包括以下几种:

  • 未追踪的文件(Untracked files):这些文件存在于本地工作目录中,但是还没有加入到 Git 的版本控制系统中。
  • 已修改的文件(Modified files):这些文件已经追踪过,并且在上次提交后被修改过。
  • 已暂存的文件(Staged files):这些文件已经追踪过,并且已经被加入到 Git 的版本控制系统中,但是在上次提交前还进行了一些修改,需要再次提交。
  • 没有修改的文件(Unmodified files):这些文件已经追踪过,但是未被修改过,未加入到 Git 的版本控制系统中。
  • 忽略的文件(Ignored files):这些文件虽然存在于本地工作目录中,但是 Git 不会对其进行版本控制,通常是因为我们手动设置了一些不需要被 Git 追踪的文件。
在命令行中查看文件状态

通过使用 git status 命令,我们可以查看当前工作目录中文件的状态,具体命令如下:

git status

执行上述命令后,会输出类似下面的信息:

On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

上述信息中,第一行表示当前所在的分支名称,第二行表示当前分支与远程主分支一致。第三行表示当前工作目录中没有任何文件需要提交。

当工作目录中存在需要提交的文件时,执行 git status 命令后,将会输出类似下面的信息:

On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   README.md

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        newfile.txt

上述信息中,第一行和第二行的内容与上例相同,第三行中的信息表示当前工作目录中有一个待提交的文件,即 README.md。在下面的 Untracked files 中,我们可以看到还有一个没有被追踪的文件 newfile.txt

命令行提示符展示

在 Linux 或者 macOS 系统中,我们可以通过设置以下环境变量,以便在命令行提示符中直接展示当前 Git 工作目录中文件的状态:

export PS1='\u@\h \W$(__git_ps1 " (%s)")\$ '

上述环境变量需要在 ~/.bashrc~/.zshrc 文件中设置。

设置完成后,每次打开终端时,会在命令行提示符中展示当前 Git 工作目录中文件的状态信息,方便我们查看。当我们进入一个 Git 仓库工作目录时,命令行提示符会自动更新,如下所示:

user@hostname ~/myproject (main)$

上述提示符表示当前工作目录下是一个 Git 仓库,并且当前所在的分支为 main,这样我们就可以方便地查看当前工作目录中文件的状态信息。