Git常规使用
Git常用命令
-
git cherry-pick start..end用于merge指定commit,左开右闭 -m用于指定父节点,只用于merge以后有多个父节点的节点
-
使用cherry-pick可以把某次commit(与上次commit的diff)回放到另外一个commit上
-
git rebase -i start end用于合并commit,美化历史记录,左开右闭,第一步是确定哪些提交需要保留,哪些需要合并,第二步是编写合并后的注释,从而美化历史记录
-
git pull origin master即可把远程分支拉取下来并和当前分支合并
-
git checkout {commitid} /path/to/file可以回滚到某个版本的file
-
git diff {commitid}:/path/to/file {commitid}:/path/to/file 会将两个版本的文件做对比,并展示相较于前一个文件,后一个文件做了哪些改变
-
git checkout -b branchName tag 拉取tag到指定分支
Git分支管理策略
所有的开发都从master拉取新feature分支进行开发,命名规则为feature/username/featurename,开发完成后通过pr被合并到master,不能直接在本地合并,当master拥有足够多的特性以后,拉取一个releasev0.x分支,给release打一个v0.x.0tag并发布,之后如果有bug需要修复,从tag拉出hotfix分支并在修复完成后cherry-pick回release并在release分支上打一个v0.x.y的tag,然后从master拉取一个mr分支,并把hotfix分支cherrypick到mr分支,然后push mr分支,提交mr回到master
在idea中提交代码时应该优先使用idea自带的git工具,因为它可以在提交时做一些静态检查包括代码风格优化等功能