Git
1. git diff比较工作区和暂存区的差异
2. git diff dev1 dev2比较两个分支的差异 差异内容都会显示出来
3. git diff dev1 dev2 --stat 只是比较两个分支有差异的文件,不会显示出差异文件的内容
4. 修改上一次commit的信息
git commit --amend -m '这是修正后的提交信息'
5. 将add和commit合为一步
git commit -am 'message'
6. 查看某个人的提交日志
git log --author=“author”
我们知道,在git进行cherry-pick的时候,找到commit id是至关重要,
如果我们是很多人在一个分支开发,开发完了之后,发现某个人的功能,需要单独cherry-pick到另外一分支上去。那么这个时候就要查询这个人的提交日志了。
使用git log --author=“author” 可以查找某一个作者所有的提交
7. 查看某个文件的提交历史不包括merge记录
git log -p --no-merges 某个文件的相对路径
如果你在分支1删除了某个文件的某一行并且提交了 分支2这个文件这一行没有删除
此时把分支2合并到分支1 删除的那一行还是不会存在
8. git reset
9.如果想忽略已经添加到git缓存中的文件可以本地这么搞,然后修改就不会被追踪了
git update-index --assume-unchanged 忽略文件路径
10. 查看本地或远程是否有某个分支(分支比较多的情况下)
git branch -r | grep '分支名' //查看远程
git branch | grep '分支名' // 查看本地
git branch -a | grep '分支名' //查看所有
11.更改分支名字
git branch -m oldName newName
12.回退某个文件到某个commit
//reset和revert 命令只能将整个版本的代码一起回滚,需要使用**checkout** 命令,可以还原部分文件到某一版本
git checkout [<branch>] [file]
**还原单个文件**\
git checkout 07ed0f4a1b9118124df26d62ffa8c253ec540207 E:/Workspaces/WebStormProject/mobile/resources/ios/splash/Default@2x~iphone.png
**还原多个文件**(使用通配符)\
git checkout 07ed0f4a1b9118124df26d62ffa8c253ec540207 E:/Workspaces/WebStormProject/mobile/resources/ios/splash/Default*.png
**还原文件夹**\
git checkout 07ed0f4a1b9118124df26d62ffa8c253ec540207 E:/Workspaces/WebStormProject/mobile/resources/ios/splash/
**使用相对路径**(相对路径最开始不能有斜杠)\
git checkout 07ed0f4a1b9118124df26d62ffa8c253ec540207 resources/ios/splash/
13.放弃本次合并
git merge --abort
14.设置命令别名
git config --global alias.co checkout
git config --global alias.cb 'checkout -b'
15.查看已经设置的别名
git config --global --get-regexp alias
个人分支上开发特性功能git提交流程
要一直保持你特性分支的纯粹性
- 基于最新的dev拉取特性分支 dev_featrue
- 基于dev拉取专门负责往dev合并的分支dev_merge(该分支只是用来进行合并特性分支,然后合并到远程dev)
- 特性分支dev_featrue修改后往dev_merge 合并
- 然后dev_merge 合入dev
- 尽量要保持dev_merge 和远程dev 代码的同步性