1、贮藏
在切换分支时,要确保该分支已经提交。如果当前develop分支可以提交,无疑是最好的选择,但是,如果当前不能提交呢?
此时我们可以使用贮藏功能。贮藏功能就是对现在的更改进行备份,注意仅仅是对更改进行备份。使用贮藏功能后,会让当前分支的工作区恢复到上一次提交的时候,从而使当前工作区变得干净。这叫做贮藏现场。
现在我们来使用一下这个功能,首先切换到develop分支,然后修改文件内容,并添加一个新文件。
贮藏成功之后发现新建的文件还在,说明新文件没有被贮藏,贮藏成功的只是被修改的文件。
出现这种情况的原因是因为,此时new file.txt还没有被Git跟踪管理,所以它默认不会被贮藏,从而一直留在文件系统中。如果我们切换到master分支,这个更改(添加新文件也是更改)会被带到master中,sourceTree也会提醒有未提交的更改,提醒你提交这个文件。
为了避免这个文件在master中会被误提交,从而使该文件出现在不应该出现的版本中,我们应该先将文件暂存再贮藏。
此时应用贮藏区,new file.txt会被应用到暂存文件,test.txt会被应用到未暂存
保留暂存的更改,顾名思义,就是贮藏的之后保留已暂存的文件。
贮藏时,如果勾选了“保留暂存的更改”选项,那么已经加入暂存区的内容都会被保留,并且在切换分支时,暂存区的内容也会被带到其他分支去。从而其他分支也能看到所做的更改。
注意,一般情况下,请不要勾选“保留暂存的更改”。因为,这可能会给你带来冲突,除非特殊情况,你确实需要把修改带过去才这么做。
2、修复bug
当master分支出现bug,develop分支又有已提交更改的情况下。
修复bug分为以下几步:
第一步:贮藏develop分支的修改
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
第三步:在fixbug分支上修复bug
第四步:切换到master,合并master和fixbug分支
第五步:切换到develop,合并develop和fixbug分支
第六步:应用贮藏,继续开发
第一步:贮藏develop分支的修改,上面已经描述过如何贮藏,这里不再过多解释。
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
第三步:在fixbug分支上修复bug
第四步:切换到master,合并master和fixbug分支
第五步:切换到develop,合并develop和fixbug分支
第六步:应用贮藏,继续开发
这个时候应用贮藏区会报如下冲突,我们需要解决冲突
这是报了冲突之后文件内容的变化情况
解决冲突,我们既需要保留合并过来的内容,也需要保留贮藏的内容。将文件中的 ’<<<<<<< Updated upstream‘,’=======‘,’>>>>>>> Stashed changes‘都删除即可。然后告诉sourceTree冲突已解决。
1、贮藏
在切换分支时,要确保该分支已经提交。如果当前develop分支可以提交,无疑是最好的选择,但是,如果当前不能提交呢?
此时我们可以使用贮藏功能。贮藏功能就是对现在的更改进行备份,注意仅仅是对更改进行备份。使用贮藏功能后,会让当前分支的工作区恢复到上一次提交的时候,从而使当前工作区变得干净。这叫做贮藏现场。
现在我们来使用一下这个功能,首先切换到develop分支,然后修改文件内容,并添加一个新文件。
贮藏成功之后发现新建的文件还在,说明新文件没有被贮藏,贮藏成功的只是被修改的文件。
出现这种情况的原因是因为,此时new file.txt还没有被Git跟踪管理,所以它默认不会被贮藏,从而一直留在文件系统中。如果我们切换到master分支,这个更改(添加新文件也是更改)会被带到master中,sourceTree也会提醒有未提交的更改,提醒你提交这个文件。
为了避免这个文件在master中会被误提交,从而使该文件出现在不应该出现的版本中,我们应该先将文件暂存再贮藏。
此时应用贮藏区,new file.txt会被应用到暂存文件,test.txt会被应用到未暂存
保留暂存的更改,顾名思义,就是贮藏的之后保留已暂存的文件。
贮藏时,如果勾选了“保留暂存的更改”选项,那么已经加入暂存区的内容都会被保留,并且在切换分支时,暂存区的内容也会被带到其他分支去。从而其他分支也能看到所做的更改。
注意,一般情况下,请不要勾选“保留暂存的更改”。因为,这可能会给你带来冲突,除非特殊情况,你确实需要把修改带过去才这么做。
2、修复bug
当master分支出现bug,develop分支又有已提交更改的情况下。
修复bug分为以下几步:
第一步:贮藏develop分支的修改
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
第三步:在fixbug分支上修复bug
第四步:切换到master,合并master和fixbug分支
第五步:切换到develop,合并develop和fixbug分支
第六步:应用贮藏,继续开发
第一步:贮藏develop分支的修改,上面已经描述过如何贮藏,这里不再过多解释。
第二步:切换到master,并从master新建用于修复bug的分支(fixbug分支)
第三步:在fixbug分支上修复bug
第四步:切换到master,合并master和fixbug分支
第五步:切换到develop,合并develop和fixbug分支
第六步:应用贮藏,继续开发
这个时候应用贮藏区会报如下冲突,我们需要解决冲突
这是报了冲突之后文件内容的变化情况
解决冲突,我们既需要保留合并过来的内容,也需要保留贮藏的内容。将文件中的 ’<<<<<<< Updated upstream‘,’=======‘,’>>>>>>> Stashed changes‘都删除即可。然后告诉sourceTree冲突已解决。