Git管理修正(取消跟踪、合并commit)
2015-08-18 17:34
471 查看
本文总结了最近使用Git时候遇到的两个问题:
1. 当将不必要跟踪的文件加入到仓库后如何处理?
2. 提交了多个功能相同的commit后如何处理?
谨慎提交commit,确保每个commit中所有的改动都是跟同一个任务相关的。
新建.gitignore文件,使用下列规则添加要忽略的文件或者文件
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录
举例,我的.gitignore文件内容如下
执行移除,新建.gitignore文件之后,再次git status就可以看到,这些讨厌的多余文件已经不被跟踪了。什么样的文件需要被忽略?编译生成的文件夹,如target目录;机器自动生成的,我们不会手动修改的隐藏文件,如.idea目录;中间文件,例如java项目中的.class文件。
将除了第一行(最老的那个commit)之外的行首的pick全部换成squash
:wq保存并推出
修改最新的commit message即可
Git使用规范流程
Git常用配置
1. 当将不必要跟踪的文件加入到仓库后如何处理?
2. 提交了多个功能相同的commit后如何处理?
总结经验
在创建仓库的一开始,就要设置号.gitignore文件,用于过滤掉不需要跟踪的文件和文件夹谨慎提交commit,确保每个commit中所有的改动都是跟同一个任务相关的。
我是怎么解决上述两个问题的
1. 移除对文件/文件夹的跟踪,但不删除
使用命令git rm --cached ignore_target_file删除对某个文件的跟踪
新建.gitignore文件,使用下列规则添加要忽略的文件或者文件
所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
可以使用标准的 glob 模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录
举例,我的.gitignore文件内容如下
[code]# 忽略.gitignore文件 .gitignore # 忽略.idea/文件夹 .idea/ # 忽略target/文件夹 target/
执行移除,新建.gitignore文件之后,再次git status就可以看到,这些讨厌的多余文件已经不被跟踪了。什么样的文件需要被忽略?编译生成的文件夹,如target目录;机器自动生成的,我们不会手动修改的隐藏文件,如.idea目录;中间文件,例如java项目中的.class文件。
2. 合并多个相似的commit
git rebase -i HEAD~4将除了第一行(最老的那个commit)之外的行首的pick全部换成squash
:wq保存并推出
修改最新的commit message即可
参考资料
Git基础–记录每次更新到仓库Git使用规范流程
Git常用配置
相关文章推荐
- R语言_高级数据管理
- 安卓开发NDK环境搭建
- 面向对象三大特性:封装,继承,多态(二、多态)
- Effective C++ 条款7 为多态基类声明virtual析构函数
- AngularJS(四)——AngularJS与其他框架间的通信问题
- mysql5.6安装
- 分享一个sql (主要体现case when 作用)
- Android 性能优化典范 三
- HDU5400 Arithmetic Sequence 数学题
- Windows上的条形码/QR读取程序
- UINavigation返回按钮修改标题
- Android学习路径(十)怎么会Action Bar堆放在布局
- css移动端:acitve效果的实现
- 未能加载文件或程序集“Newtonsoft.Json,Version=4.5.0.0 问题?
- Volley https support
- 神秘的40毫秒延迟与 TCP_NODELAY
- 牛顿法、雅克比矩阵、海森矩阵
- 实习笔记3
- iOS UITableView代理方法详解
- STL学习篇:“投机取巧”地学习