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)。