Git 与 Linux 常用命令速查笔记

这篇是纯粹的速查笔记。我在虚拟机里装 Linux 练命令、在本地建仓库练 Git,敲过又忘掉的命令都抄在这里, 附上我自己的理解,方便以后翻。

一、Git 的三个区域

理解 Git 的关键是搞清楚文件在哪一个区域里:

工作区 (Working Directory)
   │  git add
   ▼
暂存区 (Staging Area / Index)
   │  git commit
   ▼
本地仓库 (Repository)
   │  git push
   ▼
远程仓库 (Remote)

这样一来很多命令就好理解了:git status 看的是「工作区和暂存区的差异」, git diff 比的是工作区与暂存区,git diff --staged 比的是暂存区与上次提交。

二、日常最常用的命令

命令作用我的备注
git init把当前目录变成仓库只需执行一次
git status查看当前状态迷茫时先敲它
git add 文件加入暂存区git add . 要慎用,容易把临时文件加进去
git commit -m "说明"提交到本地仓库说明写清楚「做了什么」
git log --oneline --graph精简查看提交历史看分支合并特别直观
git branch 名称新建分支练习时开分支,别直接在主分支改
git switch 名称切换分支比 checkout 语义更清楚
git merge 名称把指定分支合并到当前分支冲突要手动解决后再提交
git remote -v查看远程仓库地址确认推送目标

三、reset 与 revert:改错了怎么补救

这两个我一开始总弄混,后来用一句话区分开了:

reset 是把指针往回挪,历史会被改写;revert 是新增一次「反向提交」,历史完整保留。

# 撤销 add,文件退回工作区(内容不丢)
git restore --staged 文件名

# 丢弃工作区的修改(内容会丢,谨慎)
git restore 文件名

# 回退到上一次提交,保留改动在暂存区
git reset --soft HEAD~1

# 撤销某次提交的影响,生成一条新的反向提交
git revert 提交号

我给自己定的规矩:已经推送到远程的提交一律用 revert,不用 reset 加强制推送, 否则别人拉取历史时会对不上。

四、.gitignore 别忘写

这个静态网站仓库里,我忽略了编辑器配置和系统生成的文件:

# 系统与编辑器
.DS_Store
Thumbs.db
.idea/
.vscode/

# 临时文件
*.log
*.tmp
*~

注意:.gitignore 只对「还没被跟踪」的文件生效。已经提交过的文件要先 git rm --cached 文件名 取消跟踪,忽略规则才会起作用。

五、Linux 常用命令速查

目录与文件

命令用途常用写法
pwd显示当前目录pwd
ls列出文件ls -alh(含隐藏文件、人类可读大小)
cd切换目录cd ..、cd ~、cd -
mkdir新建目录mkdir -p a/b/c 一次建多层
cp复制cp -r 目录 目标
mv移动 / 重命名mv old.html new.html
cat / less查看文件内容大文件用 less,可翻页
find查找文件find . -name "*.html"

查看与统计

# 统计目录下 html 文件数量
find . -name "*.html" | wc -l

# 在文件内容里搜索关键字,-n 显示行号,-i 忽略大小写
grep -rni "豫ICP备" .

# 查看磁盘占用与内存
df -h
free -h

# 查看端口占用(本地起服务时很有用)
ss -lntp

本地起一个静态服务器

我平时预览这个网站,就在项目根目录执行:

# 方式一:有 Python 环境
python -m http.server 8080

# 方式二:有 Node 环境
npx --yes http-server -p 8080

然后浏览器打开 http://127.0.0.1:8080 即可。 注意 127.0.0.1 只在本机可访问;如果开放 0.0.0.0 让外网访问, 一定要确认防火墙规则,练习完就关掉。

六、易错点小结

  • 路径区分大小写:Linux 下 Index.html 和 index.html 是两个文件,本地能跑线上 404 常常是这个原因。
  • 换行符差异:Windows 的 CRLF 与 Linux 的 LF 会造成整文件 diff,建议在仓库里加一份换行符配置统一处理。
  • 权限问题:Permission denied 时先看清是哪个文件,不要习惯性加 sudo。
  • 命令带 -r、-f 参数时要格外小心,删之前先用 ls 确认路径无误。
本文为范亚鹏的个人学习记录,命令与结论均来自本人练习过程,可能存在不准确之处,仅供学习参考。转载请注明出处与本站「优你维」(fanyapeng.cn)。