在上一篇搭好 Git 环境后,日常写代码时的操作才是高频需求:写好的代码怎么 "存" 到 Git 里?项目里的日志、缓存文件怎么让 Git 自动忽略?写到一半的功能突然要切分支改 Bug,代码怎么临时存起来?这篇就把 "add/commit/log" 这些核心命令、.gitignore 配置、git stash 临时存储这些日常操作讲透,覆盖你 80% 的本地开发场景。
4、Git 命令
git init
将目录变成git可以管理的仓库
bash
// 在目标目录下打开 git bash
git init
git add / git commit
Git工作目录下对于文件的修改(增加,删除,更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

git add (工作区 --> 暂存区)
添加工作区一个或多个文件的修改到暂存区
git add 单个文件名|通配符
git commit (暂存区 --> 本地仓库)
提交暂存区内容到本地仓库的当前分支
git commit -m "注释内容"
bash
// . 表示是全部文件,也可以指定文件名
git add .
// -m 表示添加描述信息
git commit -m "update file01.txt"
git status
用于查看修改的状态(暂存区,工作区)
bash
git status
git log
用于展示日志内容

git reset
版本切换
命令形式:git reset --hard commitID
commitID可以使用git-log或git log 指定查看
如何查看已经删除的记录?
git reflog 这个指令可以看到已经删除的提交记录
这里对commitID的复制粘贴是(选中commitID然后到--hard后面点击鼠标滚轮)
5、.gitignore 文件
注意:在项目开始就要创建.gitignore文件
在使用git的过程中,有些文件无需纳入git的管理,也不希望他们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。
我们可以创建一个名为.gitignore的文件,列出要忽略的文件模式,Git会根据这些模式规则;来判断是否将文件添加到版本控制中。
注意:在windows下可以创建文件名为.gitignore.,保存后系统会自动重命名为.gitignore
格式规范:
- 所有空行或者以注释符号#开头的行都会被Git忽略
- 可以使用标准的glob模式匹配
- glob模式
所谓的glob模式是指所使用的简化了的正则表达式:
"*" :星号匹配零个或多个任意字符
\] :匹配任何一个列在方框中的字符,如\[ab\]匹配a或者匹配b "?":问号匹配一个任意字符 \[n-m\]:匹配所有在这两个字符范围内的字符,如\[0-9\]表示匹配所有0到9的数字 ```bash # 忽略当前路径下的logs目录,包含logs下的所有子目录和文件 logs/ # 忽略根目录下的logs.txt文件 /logs.txt # 忽略所有后缀为.class的文件 *.class # 不忽略classes目录下的a.class文件 !classes/a.class # 只忽略tmp目录下的.txt文件 tmp/*.txt # 可以忽略/foo,a/foo,a/b/foo等 **/foo ``` * 匹配模式最后跟(/)说明要忽略的是目录 * 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反 ### **java开发通用模版** ```bash #java *.class #package file *.war *.ear *.zip *.tar.gz *.rar #maven ignore target/ build/ #eclipse ignore .settings/ .project .classpatch #Intellij idea .idea/ /idea/ *ipr *.iml *.iws # temp file *.log *.cache *.diff *.patch *.tmp #system ignore .DS_Store Thumbs.db ``` ### **diff命令(用于查看修改变化)**    ### 6、Git stash 作用是将目前还不想提交的但是已经修改的内容进行保存至堆栈中,后续可以在某个分支上回复出堆栈中的内容。也就是说,stash中的内容不仅可以恢复到原先开发的分支,也可以恢复到其他任意指定的分支上。git stash作用的范围包括工作区和暂存区中的内容,也就是说没有提交的内容都会保存在堆栈中。 git stash \[-u/-a/-all
- 默认情况下,git stash 会保存已跟踪文件的修改
- 若要同时保存未跟踪文件(未通过 git add 加入版本控制的新文件,需要使用 -u)来保存
- 若要保存忽略文件(如.gitignore中指定的文件),可以使用 -a 或 -all 参数,它会保存所有未提交的修改(包括跟踪,未跟踪,忽略的文件)
总结:执行git stash后,工作区和暂存区会恢复到最近一次提交(HEAD)的状态,后续可通过
git stash pop 或者 git stash apply 恢复保存的内容。
pop和apply的区别
1,git stash apply
- 仅将 stash 中的修改应用到当前工作区,不会删除该 stash 记录。
- 适用场景:需要在多个分支重复应用同一份 stash 时(例如同一修改需在多个分支测试),可以多次使用 apply。
- 示例:git stash apply stash@{0}(指定应用第 0 个 stash,不指定则默认最新的)。
2,git stash pop
- 将 stash 中的修改应用到当前工作区后,会自动删除该 stash 记录。
- 适用场景:确认只需要应用一次 stash,且之后不再需要该记录时,用 pop 更简洁。
- 示例:git stash pop(默认应用最新的 stash 并删除它)。
展示所有现存的stash记录
bash
git stash list
注意:取出一个文件后需要提交后才能取出第二个,不然会报错。
现在你已经能搞定本地开发的大部分 Git 操作了:从add/commit存代码,到用.gitignore过滤垃圾文件,再用stash临时存起未完成的功能。但 Git 的'灵魂优势'其实是分支 ------ 怎么同时开发多个功能不冲突?线上 Bug 怎么快速修复?下一篇《Git 分支实战:管理技巧 + 主流策略》咱们把分支玩明白!