Chinaunix首页 | 论坛 | 认证专区 | 博客 登录 | 注册

信仰年轻

如果想出发,就不要等到明天!

  • 博客访问: 1156755
  • 博文数量: 321
  • 博客积分: 1557
  • 博客等级: 上尉
  • 技术积分: 1206
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 23:38
个人简介

如果想出发,就不要等到明天!

文章分类

全部博文(321)

文章存档

2016年(1)

2015年(41)

2014年(152)

2013年(116)

2012年(4)

2011年(1)

2009年(6)

微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
07 Git 移动、删除文件 2013-03-03 23:56:46

分类: 项目管理


1, git tag 记录当前版本库状态

1.1 给最近一次提交打个标签,git 里面叫“里程碑”。

1.2 对 git tag 的初次理解:

对当前最近一次 commit ID 进行记录来实现对当前版本库状态的保存

用下面的操作就验证一下:

可以看出这个 tag 跟 master 都处于 refs 下面,我的理解就是他只是对版本库当前状态的一个引用而已。


2, git 删除文件:

2.1 保存当前版本库、暂存区、工作区的状态,以便进行后面不同的实验:


这里使用 git stash apply 是因为 git stash apply 在恢复的时候不会从 git stash list 中删除,以便多次恢复。

2.2 直接执行 rm 进行删除:


在工作区直接删除文件对暂存区、版本库没有任何的改变,文件依旧存在。

2.3 执行 git rm 删除文件


commit 到版本库:

提交以后我们可以通过:

git ls-files --with-tree=HEAD^ 查看提交前的 tree ,发现文件依旧存在版本库中。

git cat-file -p HEAD^:welcome.txt 查看被删除的文件在被删除前的内容。

git rm 删除文件会影响到工作区以及暂存区,提交以后会直接影响到版本库,但不影响提交以前版本库的目录结构。

2.4 恢复删除的文件:

2.4.1 git cat-file -p HEAD^:welcome.txt > welcome.txt

这里我有个疑问:在恢复welcome.txt之前不是已经把文件删除掉了吗?为什么 git ls-files --with-tree=HEAD^ 却显示删除提交前的目录里面会有这个文件呢?

查看历史目录树看看是神马问题:

奇怪,无论我用HEAD^还是882ed4b,都显示有welcome.txt文件,这里我也没有搞懂,郁闷。。。

不服气,重来,看看是神马问题!

2.4.2 这次直接从之前的提交中 checkout 出来:


提交:

依旧是这样,没搞懂,超郁闷。。。。。

3,移动文件,给文件改名:

撤销之前的改名:

o(∩_∩)o 哈哈,welcome.txt 文件又回来了。







阅读(78288) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册