目 录
2.1 文件添加及提交
文件添加
添加某个文件:git add file.c
添加所有文件:git add .
作用:
1)已经追踪的文件:将修改从工作区保存到暂存区
2)未追踪的文件:加入git追踪范围
文件提交
将暂存区的所有内容提交到版本库
— 单步提交:git commit -m "commit info"
— 一次性提交:git commit -a
— 修改最后一次提交:git commit --amend #该提交会生成一个新的commit对象,替换先前的commit对象
注意:如果修改没有保存到暂存区,是不会提交到版本库的。
2.2 文件删除
1)从工作目录和暂存区中删除
方式一:
首先从工作目录中删除,使用 rm -rf file.c
然后使用 git add file.c
最后进行提交 git commit -m "delete file.c"
方式二:
首先使用 git rm -f file.c
再进行提交 git commit -m "delete file.c"
避免文件出现在未跟踪清单中
删除并提交后,该文件就不再被版本库追踪,但是版本库仍然有这些文件的快照
2)从暂存区中删除,工作目录保留
使用命令:git rm --cached file.c
包括:库文件、可执行文件、日志、临时文件
3)从版本库中删除:版本回退到错误提交之前的版本
撤销提交到暂存区:git reset --soft SHA-1(例如回退到上一个版本时SHA-1=HEAD^)
撤销提交到工作区:git reset --mixed SHA-1
将工作区、暂存区和版本库恢复到指定版本(不建议使用):git reset --hard SHA-1
注意:删除也被认为是修改,可以从版本库中还原。
2.3 文件重命名
文件重命名:git mv old_file new_file,然后进行提交
重命名实际操作
文件移动:mv old_file new_file
删除旧文件:git rm old_file
添加新文件:git add new_file
2.4 忽略指定格式的文件
有些文件不必提交到版本库中
— 可执行文件、日志文件、临时文件、库文件
忽略文件模式:glob模式匹配
— 忽略以#开始的行
— 忽略某种格式结尾文件:*.[ao]
— 某个库文件除外,不忽略:!clib.a
— 忽略临时文件:*~
— 忽略根目录下的某个文件:/text
— 忽略某个目录下的所有文件:libs/、libs/*.a
手动创建.gitignore文件
2.5 撤销修改
撤销工作区的提交
git checkout file.c
让文件回到最近一次commit或add的状态
若文件还没添加到暂存区:撤销后和版本库一样
若文件已添加到暂存区且做了修改:回到暂存区状态
撤销暂存区的内容
git reset HEAD file.c
将暂存区的修改撤销掉,重新放回工作区
撤销版本库的提交
git reset --hard SHA-1(HEAD^)
回退版本,并刷新到工作区中,彻底丢弃先前修改的内容
先前的提交对象还在版本库中孤独地存在着(可以压缩版本库,释放占用空间)
2.6 差异比较
比较工作区和暂存区差异
git diff #查看尚未暂存文件有哪些新的修改
比较暂存区和版本库差异
git diff --cached [HEAD]
git diff --staged SHA-1
查看已暂存文件和上次提交的快照之间的差异
比较工作区和版本库差异
git diff HEAD(SHA-1) #查看尚未暂存文件和最新提交文件快照的区别
比较两个版本之间差异
git diff 一个版本的SHA-1 另一个版本的SHA-1 #查看不同版本之间的差异
2.7 压缩仓库
压缩版本库
在日常运行中,git快照会占用磁盘空间
git会在增量存储单元中存储修改
通过git gc命令压缩增量存储单元,节省磁盘空间
快照的存储
对于修改的内容:做快照处理并保存
对于未修改的文件:做引用处理
查看git占用磁盘空间大小:du -sh
来源:CSDN
作者:JacksonShen2020
链接:https://blog.csdn.net/qq_33669963/article/details/104107246