点击蓝字
关注我们
git数据流
![6ebb4bb5a28a9b86834ea7465cb051c6.png](https://img-blog.csdnimg.cn/img_convert/6ebb4bb5a28a9b86834ea7465cb051c6.png)
图|git数据流
创建本地版本库
什么是版本库?版本库又名仓库,英文名repository,可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件"还原"。
通过命令 git init 把这个目录变成git可以管理的仓库,如下:
![92b3cd5ab1062a9ca153777c131326e7.png](https://img-blog.csdnimg.cn/img_convert/92b3cd5ab1062a9ca153777c131326e7.png)
图|新建版本库
把文件交给git管控
1)对于目录下存在的新增文件,通过gits status查看为Untracked files状态
git status -查看当前的状态
![a076becf2647528f5ff9bf8282641ebb.png](https://img-blog.csdnimg.cn/img_convert/a076becf2647528f5ff9bf8282641ebb.png)
2)git add ${filename} -将文件交给git管控,将修改的文件添加到暂存区
![5afde742f8489e5f431cae5bbe402a6a.png](https://img-blog.csdnimg.cn/img_convert/5afde742f8489e5f431cae5bbe402a6a.png)
3)git add --all -将工作区修改的所有文件一次性添加至暂存区
![650531aebea11a42904f414d4c383906.png](https://img-blog.csdnimg.cn/img_convert/650531aebea11a42904f414d4c383906.png)
4)git rm --cached ${filename} -将指定文件从暂存区中拉回到工作区:)git add --all -将工作区修改的所有文件一次性添加至暂存区
![ee800682472c8242e2ec54d55785a216.png](https://img-blog.csdnimg.cn/img_convert/ee800682472c8242e2ec54d55785a216.png)
5)git commit -m "${本次提交内容的注释}" -将暂存区的内容提交到存储库里进行存档
git log -查看当前的commit记录
)git rm --cached ${filename} -将指定文件从暂存区中拉回到工作区:)git add --all -将工作区修改的所有文件一次性添加至暂存区
![6d4ba13ae97d7f28fc707d1de772d6b3.png](https://img-blog.csdnimg.cn/img_convert/6d4ba13ae97d7f28fc707d1de772d6b3.png)
5)git log --oneline --graph -输出更精简的提交记录(无提交作者和时间等信息)
git log --oneline --graph --grep="${过滤信息}" -通过--grep过滤有用的信息
工作区、暂存区与存储库
![ec98daae0b2ca0bb679497d49b8495d1.png](https://img-blog.csdnimg.cn/img_convert/ec98daae0b2ca0bb679497d49b8495d1.png)
图|工作区、暂存区、本地存储库的概念
修改最后一次commit记录
1)修改最后一次commit的注释信息
git commit --amend -m "${新的注释信息}"
虽然只是修改记录的信息,但是对git来说,因为commit的内容变更(如图中SHA-1发生变更),所以git会重新计算并产生一个新的commit对象,其实相当于一次全新的commit。
![958bb3381b47998f78447393011abcab.png](https://img-blog.csdnimg.cn/img_convert/958bb3381b47998f78447393011abcab.png)
2)最后一次commit追加新的变更
git add --all
git commit --amend --no-edit (--no-edit表示不需要更改commit注释信息)
SHA-1同样发生了变更
![8370510503b64840e660f7dee3ae4128.png](https://img-blog.csdnimg.cn/img_convert/8370510503b64840e660f7dee3ae4128.png)
撤销修改和删除文件操作
如果想对工作区删除的文件进行恢复,
可使用git checkout ${filename}进行
![6b65548267f3456d23a2fb93a1dff0ca.png](https://img-blog.csdnimg.cn/img_convert/6b65548267f3456d23a2fb93a1dff0ca.png)
通过git checkout命令将暂存区的中的内容或文件拿来覆盖工作目录中的内容或文件。执行git checkout readme.txt会把readme.txt文件恢复到上一次commit的状态
测试如下:
1)新增提交记录
![477653c2528e9b79b12058a21bdf0df2.png](https://img-blog.csdnimg.cn/img_convert/477653c2528e9b79b12058a21bdf0df2.png)
2)对readme.txt文件回退到前一个版本的commit状态
![6c152ee604545c66f46badae920b83c2.png](https://img-blog.csdnimg.cn/img_convert/6c152ee604545c66f46badae920b83c2.png)
3)提交新的commit记录
![aaf0dfcc7c98d9c4415a83972d69937c.png](https://img-blog.csdnimg.cn/img_convert/aaf0dfcc7c98d9c4415a83972d69937c.png)
有些文件不想放在git管控中
1)使用命令git config配置忽略配置文件.gitignore。
git config core.excludesfile .gitignore
2)修改.gitignore文件忽略不希望被git托管的文件
文章太长,未完待续