Git仓库某一个文件夹里的文件离奇丢失的问题
2016-01-23 13:17
731 查看
最近我在开发一个智能硬件产品的项目,涉及了硬件、软件两个方面,用同一个git项目的不同分支进行协同,例如硬件小伙伴使用hardware分支,软件小伙伴使用software分支,分支间差异较大,例如hardware分支就是纯电路图,software分支就是纯代码的情况;
software分支引用了一些开源的代码,Simpleini和Arduino-IRremote,直接通过git clone方式获取到开发的文件目录中,在software分支上各种提交操作等,未发现异常情况,直到有天我切到了hardware分支,然后再切回去,发现Simpleini和Arduino-IRremote文件夹中的文件都不见了,然后我去gitcaft上查看已经push到远端仓库的内容,发现这里是这样的:
![](https://img-blog.csdn.net/20160123132132640?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20160123132352206?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这两个文件夹都是点不开的,而且丢失文件的文件夹后面都被追加了 @****(正好是我引用代码处的提交点) ,原来该文件夹的内容根本就没有被跟踪上;文件都没有被跟踪上,也就更无法使用git 恢复了;
对此问题百思不得其解,google各种解决方案,看到一句话警醒了我:
![](https://img-blog.csdn.net/20160123132414112?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
好激动,我又重新从github上获取了代码,将相应的.git文件夹都删掉,如下图:
![](https://img-blog.csdn.net/20160123132437097?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
然后先在我自己的git项目路径,执行git rm指令删除那两个异常的文件夹,或直接手动删掉那两个文件夹;
将新的代码再次放入原有目录,先后执行add、commit、push,然后查看gitcafe的代码,一切正常了;
如果引用了第三方的代码,还想加入自己的项目中,又还不想删掉里面的.git目录,那还有种方法是将其作为本项目的子模块,参考(这种方式我没有验证过,仅供大家参考吧):https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97
software分支引用了一些开源的代码,Simpleini和Arduino-IRremote,直接通过git clone方式获取到开发的文件目录中,在software分支上各种提交操作等,未发现异常情况,直到有天我切到了hardware分支,然后再切回去,发现Simpleini和Arduino-IRremote文件夹中的文件都不见了,然后我去gitcaft上查看已经push到远端仓库的内容,发现这里是这样的:
这两个文件夹都是点不开的,而且丢失文件的文件夹后面都被追加了 @****(正好是我引用代码处的提交点) ,原来该文件夹的内容根本就没有被跟踪上;文件都没有被跟踪上,也就更无法使用git 恢复了;
对此问题百思不得其解,google各种解决方案,看到一句话警醒了我:
好激动,我又重新从github上获取了代码,将相应的.git文件夹都删掉,如下图:
然后先在我自己的git项目路径,执行git rm指令删除那两个异常的文件夹,或直接手动删掉那两个文件夹;
将新的代码再次放入原有目录,先后执行add、commit、push,然后查看gitcafe的代码,一切正常了;
如果引用了第三方的代码,还想加入自己的项目中,又还不想删掉里面的.git目录,那还有种方法是将其作为本项目的子模块,参考(这种方式我没有验证过,仅供大家参考吧):https://git-scm.com/book/zh/v1/Git-%E5%B7%A5%E5%85%B7-%E5%AD%90%E6%A8%A1%E5%9D%97
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- 介绍一款信息管理系统的开源框架---jeecg
- 源码被倒卖,大厂薅羊毛,开源真的只能被予取予求?
- git更新已經刪除的文件
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- maven使用经验集
- 专家解读:开源软件项目是否会被限制出口?
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- 专家解读:开源软件项目是否会被限制出口?
- fuse-dfs的设定手册
- Centos下***(pptpd)的部署
- git终极指南:在实际开发中的应用
- Ruby中的异常处理代码编写示例
- 样式表CSS布局经验
- 路由器之基本维护经验
- MySQL抛出Incorrect string value异常分析
- 开源MySQL高效数据仓库解决方案:Infobright详细介绍
- 学习C和C++的9点经验总结