Git教程-5.分支管理

分支命令

  • 内容创建一个sub分支: git branch sub

  • 切换到sub分支:git checkout sub

  • 合并以上两条命令,创建并切换:git checkout -b sub

  • 查看分支:git branch
    git branch命令会列出所有分支,当前分支前面会标一个*号

  • 合并sub分支到当前分支:git merge sub

  • 删除sub分支:git branch -d sub

合并冲突

  • 有时候当两个分支都做了修改,再合并会产生冲突,这时候切换到主分支,打开文件,手动修改成自己想要的,再删除子分支。

分支管理策略

  • git merge --no-ff -m “merge with no-ff” sub:从分支历史上就可以看出分支信息
  • git log --graph --pretty=oneline --abbrev-commit:log查看分支合并情况

  • master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活
  • 干活都在子分支上,上面版本都是不稳定的,当发布版本的时候,再将子分支合并到master上
  • 小伙伴都在子分支上的分支上工作,每个人有自己的分支,时不时往子分支上面合并即可
    在这里插入图片描述

Bug修复

  • master上发现bug的时候,我们先保存当前的工作现场:git stash
  • 切换到master上,创建bug分支,修改完,再合并到master上
  • 再切换到自己的工作分支上,恢复现场:
  1. git stash apply:恢复之后,stash内容还保存,想删除,得手动:git stash drop
  2. git stash pop:恢复同时也把stash里缓冲的内容删除
  • git stash list:查看当前的stash列表
  • git stash apply stash/drop @{0}:恢复/删除指定的stash

新增功能

  • 当想新增一功能时,应该在master上在建一个分支,完成再合并到master上
  • 如果还没有合并,功能不需要了,想删除这个分支:git branch -D sub


多人协作

  • 推送分支
  1. 就是把本地该分支上的所有提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上

  2. git push origin master :推送master分支

  3. git push origin sub:推送sub分支

  4. 如果这个时候,队友已经推送了,碰巧你也修改了,想推送上去。这时候会推送失败,因为你队友已经推送了最新的,你再推送会有冲突,解决办法:
    (1)git pull 把最新的抓取下来,在本地合并。如果提示:no tracking information,再指定本地的dev和远程的origin/dev连接:git branch --set-upstream-to=origin/sub sub
    (2) 重新 git pull ,如果有冲突,手动解决冲突,再push分支。

  • 抓取分支
  1. git clone git@github. com:账号名/远程库名.git
    git clone h ttps://github.com/账号名/远程库名
  2. 默认在本地只能看到一个master分支,要想看到远程库的其他分支,在本地创建远程库的其他分支:git checkout -b sub origin/sub,这时候才能看到远程库的dev分支,然后再本地开发sub,再推送。

猜你喜欢

转载自blog.csdn.net/zzyczzyc/article/details/82961530