关于 git 的一些东西
用了很久的 git 了,但更多的是用基本的东西,也没有深究过是不是合适。长假过来重新总结一下。
git flow
主分支有两个,master 和 develop。
develop 是当前的主要开发分支,当足够稳定可以进行发布版本的话就可以把代码 merge
到 master。
其余的称为辅助分支,如下:
- feature,可能从 develop 派生出来,但最后一定合并到 develop
- feature 可以只留在本地
- release, 用于准备进行发布的版本,允许针对部署环境的小修改,bug 的修改
- bug 修改以及一些其它的修复在之后需要合并回 develop 和 master
- 合并到 master 之后记得加上 tag
- hotfix, 从 master 派生出来,进行发布时意料之外的 bug 的修复
- 修复之后进行版本号的更新
- 最后也需要合并代码到 develop
需要注意的是,在这里合并分支使用的是 git merge --no-ff <branch>
来进行合并。这样合并后会新增一个节点,这样子保证了版本演进的清晰。
有用的东西
rebase
rebase
试用于不想保留分支信息的情况,你 checkout
了一个新分支出来,修改了提交了几个 commit
之后,如果之前的分支也有别人的提交,你进行合并的时候就造成了分支的交叉。如果你不想合并就使用 git rebase <origin>
,这样子就会把你在当前的分支的提交取消,把你的修改更新到原来的分支去。
rebase
适合在本地只修改几个文件,新建的分支也不需要发布到远端。
日志查找
1 |
|
修改提交
增补提交
在已经提交之后,修改某个文件,然后使用下方命令即可直接复用刚才的提交
1 |
|
反转提交
如果代码没有提交,可以简单使用 git reset
。
如果提交了的话,则可以使用 git revert -n HEAD
撤销提交,添加了 -n
参数之后,撤销的改动不会马上提交,撤销了提交,之后修改后再重新提交。
压缩版本库
1 |
|
grep
1 |
|
最后的最后
目前在用的时候可能回用到的就是上面这些了,还是历史版本的修改,二分查找一类的高级功能尚未涉及。
参考
关于 git 的一些东西
http://yoursite.com/2015/10/07/about-git/