命令运行在哪里

命令由程序名、参数和运行环境组成。同一条相对路径在不同工作目录下指向不同文件。排查“找不到文件”时,先确认工作目录与实际路径,再检查拼写和权限。标准输出用于结果,标准错误用于诊断,退出码用于说明操作是否成功。

PowerShell 可以用 Get-Location、Get-ChildItem 和 Get-Command 查看目录、文件与程序来源;类 Unix shell 常用 pwd、ls 和 command -v。文件名包含空格时,按所用 shell 的规则传递为一个参数,不要把显示用的字符串拼接当成可靠的命令参数。

Git 的三个位置

工作区是正在编辑的文件,暂存区是下一次提交准备包含的内容,提交记录保存可追踪的项目快照。修改文件并不等于暂存,暂存也不等于已经提交。

git status --short
git diff
git diff --cached
git log -5 --oneline

在自己的练习仓库创建一个文本文件,先运行 status,修改后查看 diff,只暂存该文件,再查看 diff --cached。确认这次提交表达一个清楚的变化后提交。不要在不理解工作区内容时批量暂存或重置文件。

分支是指向提交的引用。合并需要协调双方改动;冲突标记只是需要人工判断的区域,删除标记不代表逻辑已经正确。解决后重新阅读最终文件并执行相应检查。

让别人复现

记录工具版本、工作目录、依赖安装命令、运行命令和预期结果。项目依赖按锁文件恢复,配置示例只包含公开字段。访问密钥与运行数据不进入提交;已经发布的秘密需要撤销,删除当前文件不能让历史记录自动消失。

练习与面试自查

用两个分支分别修改同一行,在练习仓库合并并解释冲突。再故意从错误目录运行脚本,观察错误与退出码。能解释为什么“我这里可以运行”还需要补充环境和步骤,以及 diff 与 diff --cached 分别看什么。

参考资料