git本地创建多个分支互不干扰
git本地创建多个分支,互不干扰。
情景:在做某个需求a时,先需要修改紧急bug b;发版时发的是远程dev的代码。
方式一(推荐):
(1)本地已有分支dev,写了需求a,先commit,即将工作区的内容提交到版本库中,否则切换到其他分支时,就会覆盖当前工作区的代码。(这步很重要)
(2)在本地创建dev_bug分支,从远程dev分支中check(git checkout -b dev_bug origin/dev)
(3)在本地dev_bug上修改bug,并commit、push到远程dev上
(4)在本地变换到dev,继续做需求a
方式二:
(1)本地已有分支dev,写了需求a,先commit,即将工作区的内容提交到版本库中,否则切换到其他分支时,就会覆盖当前工作区的代码。(这步很重要)
(2)执行git log --pretty=oneline,会显示所有的版本号,记住最新的那个版本号,记为A
(2)然后执行git reset --hard HEAD^,恢复到上个版本。
(3)本地新建分支dev_debug(git checkout -b dev_debug),这时dev_debug的代码是写需求a之前的版本。修复完bug后,提交并push到远程dev。
(4)本地切换到dev分支,并回到最新的那个版本A ,执行命令git reset --hard <A前几位>,这时又回到需求a的开发。
方式三(推荐)
(1)本地已有分支dev,写了需求a,但是不要提交。
(2)执行git stash命令,将工作区的内容“储存起来”
(3)接着在dev分支上修改bug,并提交,push
(4)执行git stash pop,恢复工作区原来的内容。