用了快一年的git但是一直都是简单的commit,pull,push,后面发现很多严重的问题才发现很多严重的问题,让我感受到分支的重要性。今天记录下我对git分支的心得和使用经验。
项目如果都在主分支上进行会有很多不好的地方,其中最明显的缺点就是如果小改动过多导致主分支的时间线很长不利于你的选择切换版本,以及主分支如果出现问题将无法继续开发。
一般对于项目管理的策咯都会用一个开发的分支,然后主分支用于存放正式的版本,在develop分支上进行开发。
现在举个例子,你有一个project,然后本地有个master分支,远程仓库有个master分支,现在你本地新建一个develop分支用于开发,现在project发布了第一个版本v1,需要迭代发布第二个版本v2,然后可能有多个人在进行开发,有很多提交然后git push到这个develop的远程分支上,中间可能会有一些冲突需要merge一下,然后v2版本完成后,我们将develop完整的v2版本内容合并到本地的master分支,然后master分支再做一次重要的说明然后push到远程分支的master分支这样远程仓库的master分支有两次提交两个版本的记录。然后小修改杂乱的提交都在develop分支上。接下来v3,v4版本都可以这样进行。
还有一个常见问题是,我们现在在develop分支上开发的正开心,突然同事跑过来告诉你master分支上有bug让你切换到master分支看看有什么问题,你切换分支要先保存当前的修改,现在你可以将修改commit或者stash。但是我们没写完的功能肯定是不想直接commit的,肯定是想写完再提交的,所以我们可以选择stash,这样等你切换分支再切回来之后又能恢复到你之前的状态,具体操作方式是先执行git stash保存你的修改,然后切换分支工作,切换回来之后执行git stash apply,这样就能恢复之前工作的状态。