Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303110
  • 博文数量: 35
  • 博客积分: 825
  • 博客等级:
  • 技术积分: 913
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-11 09:44
文章分类

全部博文(35)

文章存档

2013年(10)

2012年(24)

2010年(1)

我的朋友

分类: 系统运维

2012-12-25 18:04:06

同事的一个项目做build  做完后发现working dir里 原先的文件全没了 生成一堆为tar包准备的文件 目录等等 杂七杂八的玩意儿 在没有了解到git reset 还有checkout之前 我都是直接把working dir掉 然后重新clone一个出来 呵呵 现在想想还是蛮无聊的 


git reset可以让repo, working dir重置为一个特定的 已知的状态 大多数情况下是想要重置到之前的某个commit的点上 当然也可以用revert什么的 但是revert会再做一次提交 这样的结果可能并不是希望的 使用git reset可以根据自己的需要选择是否更新working dir, index等  当然它也不会引入一次提交 


git reset常用的选项包括:

--soft 只影响HEAD 把HEAD指向某个ref 而index和working dir保持原样

--mixed (这个是默认的选项)影响HEAD 还有index

--hard 影响HEAD, index 以及working dir


例如开始提到的那种状况 可以用--hard选项(git reset --hard HEAD) 这样会丢掉working dir的修改 恢复到之前的状态 还有一种方法就是

git checkout .

git clean -f -d (删除working dir里没有被track的文件)

阅读(1544) | 评论(0) | 转发(0) |
0

上一篇:git merge时出现conflict

下一篇:git remote

给主人留下些什么吧!~~