======== 分支操作 ======== 创建HelloBranch目录,在其中点右键,Git Bash Here。 创建master分支。 $ git init 创建a.txt。 $ git add . $ git commit -m '创建a.txt' 创建b.txt。 $ git add . $ git commit -m '创建b.txt' 创建dev分支。 $ git branch dev 查看本地库分支。 $ git branch dev * master <- 当前分支 创建test分支,并将其设置为当前分支。 $ git checkout eacb6e3 -b test $ git branch dev master * test 切换分支。 $ git checkout dev $ git branch * dev master test 回到主分支。 $ git checkout master 回到89d7c45版本。 $ git checkout 89d7c45 创建debug分支。 $ git branch debug 回到主分支。 $ git checkout master $ git log --oneline eacb6e3 (HEAD -> master, test, dev) 创建b.txt 89d7c45 (debug) 创建a.txt 89d7c45->eacb6e3 a.txt a.txt b.txt ------------^--- master ---^--- dev ---^--- test ---^------------ debug 创建c.txt。 $ git add . $ git commit -m '创建c.txt' $ git log --oneline ca1a41d (HEAD -> master) 创建c.txt eacb6e3 (test, dev) 创建b.txt 89d7c45 (debug) 创建a.txt 89d7c45->eacb6e3->ca1a41d a.txt a.txt a.txt b.txt b.txt c.txt ---------------------^--- master ---^------------ dev ---^------------ test ---^--------------------- debug 切换到debug分支。 $ git checkout debug 只能看到a.txt。 切换到dev分支。 $ git checkout dev 可以看到a.txt和b.txt。 切换到test分支。 $ git checkout test 可以看到a.txt和b.txt。 切换到master分支。 $ git checkout master 可以看到a.txt、b.txt和c.txt。 切换到dev分支。 $ git checkout dev 创建d.txt。 $ git add . $ git commit -m '创建d.txt' $ git log --oneline cd09f12 (HEAD -> dev) 创建d.txt eacb6e3 (test) 创建b.txt 89d7c45 (debug) 创建a.txt 89d7c45->eacb6e3->ca1a41d a.txt a.txt a.txt b.txt b.txt c.txt ---------------------^--- master ->cd09f12 a.txt b.txt d.txt ------------^--- dev ---^------------ test ---^--------------------- debug 切换到master分支。 $ git checkout master 只能看到a.txt、b.txt和c.txt,看不到d.txt。 切换到debug分支。 $ git checkout debug 创建e.txt。 $ git add . $ git commit -m '创建e.txt' $ git log --oneline cf78211 (HEAD -> debug) 创建e.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d a.txt a.txt a.txt b.txt b.txt c.txt ---------------------^--- master ->cd09f12 a.txt b.txt d.txt ------------^--- dev ---^------------ test ->cf78211 a.txt e.txt ------------^------------ debug 创建f.txt。 $ git add . $ git commit -m '创建f.txt' $ git log --oneline 6adad25 (HEAD -> debug) 创建f.txt cf78211 创建e.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d a.txt a.txt a.txt b.txt b.txt c.txt ---------------------^--- master ->cd09f12 a.txt b.txt d.txt ------------^--- dev ---^------------ test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^--- debug 切换到dev分支。 $ git checkout dev 创建g.txt。 $ git add . $ git commit -m '创建g.txt' $ git log --oneline 13fa4c6 (HEAD -> dev) 创建g.txt cd09f12 创建d.txt eacb6e3 (test) 创建b.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d a.txt a.txt a.txt b.txt b.txt c.txt ---------------------^------------ master ->cd09f12->13fa4c6 a.txt a.txt b.txt b.txt d.txt d.txt g.txt ---------------------^--- dev ---^--------------------- test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^------------ debug 切换到master分支。 $ git checkout master 将dev分支合并到当前分支(master)。 $ git merge dev $ git log --oneline 85b27fc (HEAD -> master) Merge branch 'dev' 13fa4c6 (dev) 创建g.txt cd09f12 创建d.txt ca1a41d 创建c.txt eacb6e3 (test) 创建b.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d---------->85b27fc a.txt a.txt a.txt a.txt b.txt b.txt b.txt c.txt c.txt d.txt g.txt ---------------------------------------^--- master ->cd09f12->13fa4c6 a.txt a.txt b.txt b.txt d.txt d.txt g.txt ---------------------^------------ dev ---^------------------------------ test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^--------------------- debug 第一方 | v A / \ B C | | 第二方->D E<-第三方 \ / F ^ | 三方合并 创建release分支。 $ git branch release 切换到release分支。 $ git checkout release 创建h.txt。 $ git add . $ git commit -m '创建h.txt' $ git log --oneline b05f456 (HEAD -> release) 创建h.txt 85b27fc (master) Merge branch 'dev' 13fa4c6 (dev) 创建g.txt cd09f12 创建d.txt ca1a41d 创建c.txt eacb6e3 (test) 创建b.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d---------->85b27fc a.txt a.txt a.txt a.txt b.txt b.txt b.txt c.txt c.txt d.txt g.txt ---------------------------------------^------------ master ->cd09f12->13fa4c6 a.txt a.txt b.txt b.txt d.txt d.txt g.txt ---------------------^--------------------- dev ---^--------------------------------------- test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^------------------------------ debug ->b05f456 a.txt b.txt c.txt d.txt g.txt h.txt ------------^--- release 创建i.txt。 $ git add . $ git commit -m '创建i.txt' $ git log --oneline ddd4ebc (HEAD -> release) 创建i.txt b05f456 创建h.txt 85b27fc (master) Merge branch 'dev' 13fa4c6 (dev) 创建g.txt cd09f12 创建d.txt ca1a41d 创建c.txt eacb6e3 (test) 创建b.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d---------->85b27fc a.txt a.txt a.txt a.txt b.txt b.txt b.txt c.txt c.txt d.txt g.txt ---------------------------------------^--------------------- master ->cd09f12->13fa4c6 a.txt a.txt b.txt b.txt d.txt d.txt g.txt ---------------------^------------------------------ dev ---^------------------------------------------------ test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^--------------------------------------- debug ->b05f456->ddd4ebc a.txt a.txt b.txt b.txt c.txt c.txt d.txt d.txt g.txt g.txt h.txt h.txt i.txt ---------------------^--- release 切换到master分支。 $ git checkout master 将release分支合并到当前分支(master)。 $ git merge release $ git log --oneline ddd4ebc (HEAD -> master, release) 创建i.txt b05f456 创建h.txt 85b27fc Merge branch 'dev' 13fa4c6 (dev) 创建g.txt cd09f12 创建d.txt ca1a41d 创建c.txt eacb6e3 (test) 创建b.txt 89d7c45 创建a.txt 89d7c45->eacb6e3->ca1a41d---------->85b27fc->b05f456->ddd4ebc a.txt a.txt a.txt a.txt a.txt a.txt b.txt b.txt b.txt b.txt b.txt c.txt c.txt c.txt c.txt d.txt d.txt d.txt g.txt g.txt g.txt h.txt h.txt i.txt ---------------------------------------------------------^--- master ->cd09f12->13fa4c6 a.txt a.txt b.txt b.txt d.txt d.txt g.txt ---------------------^------------------------------ dev ---^------------------------------------------------ test ->cf78211->6adad25 a.txt a.txt e.txt e.txt f.txt ---------------------^--------------------------------------- debug ---------------------^--- release 没有产生新版本————快速合并。 A /| B | | | C | \| D 显示分支图。 $ git log --oneline --graph * ddd4ebc (HEAD -> master, release) 创建i.txt * b05f456 创建h.txt * 85b27fc Merge branch 'dev' |\ | * 13fa4c6 (dev) 创建g.txt | * cd09f12 创建d.txt * | ca1a41d 创建c.txt |/ * eacb6e3 (test) 创建b.txt * 89d7c45 创建a.txt 例程:HelloBranch 命令回顾: - git branch // 查看分支 - git branch <分支名> // 创建分支 - git checkout <分支名> // 切换分支 - git checkout <版本号> -b <分支名> // 在指定版本上创建分支并切换到该分支 - git merge <分支名> // 将指定分支合并到当前分支 - git log --oneline --graph // 显示分支图