[Git痛点讲解 : 不断完善中]
来源:互联网 发布:淘宝客推广的入口 编辑:程序博客网 时间:2024/06/05 11:39
Git是一款可记录历史,回到过去的分布式版本管理工具~
普及Git基本知识:http://git.oschina.net/progit/
1.如果无意删除了远程分支和本地分支应该如何回到过去版本?
答:
在使用Git的过程中,有时可能会有一些误操作,比如:执行checkout -f 或 reset -hard 或 branch -d删除一个分支,结果造成本地(远程)的分支或某些commit丢失。这时,我们可以通过reflog来进行恢复,前提是丢失的分支或commit信息没有被git gc(CD30天)清除。一般情况下,gc对那些无用的object会保留很长时间后才清除的。reflog是git提供的一个内部工具,用于记录对git仓库进行的各种操作,可以使用git reflog或git log -g命令来看到所有的操作日志。
本地仓库回滚的过程很简单:
1.1 通过 git log -g 命令来找到我们需要恢复的信息对应的commit_id,可以通过提交的 版本ID,注备,时间,日期来辨别(黑色处为个人隐私)。
1.2 通过 git branch reserve_branch commit_id 来建立一个基于commit_id的新的分支(分支名可自定义)。
1.3 这样丢失的东西会恢复到reserve_branch 分支上了,然后切换到reserve_branch分支,一会文件就被开发工具检查到,可以用git push origin HEAD -u将本地分支推送到远程~
参考地址:http://blog.csdn.net/losophy/article/details/8932157
2..gitignore 失效,不能进行有效过滤,怎么办?
答:
在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件.
如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交(蓝色文件为加入了版本控制的,灰色为.gitgnore过滤后的不可添加版本控制):
不要误解了!!! .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
#1.清理本地缓存(改变成未被追踪状态)
$ git rm -r –cached .
#2.把工作时的所有变化提交到暂存区 : 包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。(会通过 .gitgnore 过滤)
$ git add .
#3.将缓存区更新到本地仓库
$ git commit -m ‘update .gitignore’
阅读全文
0 0
- [Git痛点讲解 : 不断完善中]
- 数据处理-不断完善中......
- vbscript知识目录(不断完善中。。。)
- Debian技术笔记--不断完善中...
- Eclipse快捷键总结(不断完善中)
- 【实例讲解】TensorFlow中TFRecord关键点
- 一些喜欢的句子!!!(不断完善增加中...)
- c++学习的心得(不断完善中)
- 2D Interface 学习(不断完善中)
- PHP高手之路(不断完善中)
- Android 中易混属性释疑(不断完善中)
- GPRS模块初始化流程(不断完善中)
- c++单态模式(不断完善中)
- GPRS模块初始化流程(不断完善中)
- ELK平台性能优化(不断完善中)
- Java 知识体系总结 -- 不断完善中
- 编程学习知识网站汇总(不断完善中)
- c++和c#参数对照,不断完善中
- BigDecimal.setScale()
- 【D3】D3 使用教程(1)-数据
- springmvc 406错误
- 破解VBA密码
- 依赖及权限
- [Git痛点讲解 : 不断完善中]
- 堆排序-乡巴老都能懂
- 使用vue-cli打包过程中的步骤以及问题
- 数据结构实验之查找五:平方之哈希表
- input输入框autofill自动变成黄色
- wake-sleep 算法的个人理解
- 基于Dragonboard 410c的指纹锁(六)
- linux与andriod区别
- 哎~ 下个月的口粮