git 学习笔记
Git 知识梳理
git init
git init 这个命令,会把当前目录,变成一个git管理的目录;这个命令,会创建一个.git文件夹,这个文件夹就是git存放所有文件历史版本的目录
git add
git add这个命令,可以把目录中的文件,加入到git的管理范围内,比如常用的 git add .
,这个.
,不要小看了,代表当前目录下的所有文件,包括目录里面一层层的所有文件
git commit
- git commit,这个指令相对简单。commit指令的用途,就是把使用git add加入到git staging里面的所有更改,打包成一个新的历史,并且会为这个新生成的历史包生成一个HASH码,这个HASH码就是这个commit的id。
- git要求每个commit,必需有一个注释,如果运行git commit时候,没有额外的参数,则git会调取系统默认的文本编辑器(通常是vi)来让用户编辑提交注释
- 我们也可以通过 git commit -m '在这里写注释' 来直接提交
- git add . 和 git commit 可以合并为一个指令, git commit -am 'comment here'
- 但是注意这个里面的坑,还是跟git add .一样,这个并不会提交要删除的文件。
- lastly,万一,刚刚commit就发现有个东西有遗漏,或者发现commit的东西有问题,可以立即更改一下,git add .之后,执行 git commit --amend,这样可以修复刚刚提交的这个版本
- 这样并不会生成两个历史,只会保留最后一次的历史。但是注意,这个操作不要在push之后做
git status
- 当你需要更新代码库,需要把服务器上最新的代码同步到本地的时候,你首先需要知道自己在哪个分支上,这时,你需要通过git status来查看当前的状态
- git status可以汇报当前分支,当前有哪些文件是更改过了,哪些是新增的,哪些是删除的,哪些已经使用add命令加入了待提交列表
- 查看完状态了,如果发现本地有更改,git pull时候会产生冲突,所以需要先把working directory清理干净再pull
git stash
那么我辛辛苦苦编辑了一半的更改怎么办?直接提交了?好像还没改完,提交了不好。那么git提供了一个叫做stash的地方,可以临时存放一下更改
git pull
整个working directory就是clean的状态了,这时候,我们就可以执行 git pull
- git pull 做了两个事情,1. 把远端的代码同步到本机,2. 把当前分支对应的远端分支的最新更改,合并到当前分支的本地分支上
- 其实本质上对应了两条git指令: git fetch ; git merge 本地分支 远端仓库/远端分支
当我们git pull拿到最新的代码以后,别忘了之前放在暂存区 stash的哪些更改
这个命令可以看出,git stash,这个暂存区,实际上是个堆栈结构
这是为了方便使用。stash也支持apply一个指定的暂存版本
stash pop里面有个坑
如果git stash pop时候没有冲突,那么git会自动删除暂存区里面的更改
如果冲突了,很不幸,这个暂存区里面的更改会在working directory 里面有一份, 暂存区里面还有一份!
这样,你需要在解决完冲突之后,手工把暂存区里面的清除掉
不然,如果你忘记删掉的话,下次你就搞不清楚这个暂存区里面的内容,到底要不要pop出来了
git stash drop 暂存区名字或者哈希
git技术栈如图如果掌握了,才算是基本会用
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步