Git分支管理

375 阅读3分钟

什么是Git分支?如何去理解?


图上显示有三个分支Master、Dev和Chongchong。 其中Master是默认就存在的一个分支,我们叫它主分支。一般很多人会觉得这个Master系统保留的分支应该有其特殊之处,但是实际上Master和其他分支一样没有啥特殊之处,无非他是必须有的分支,这个名称也可以通过git远程仓库修改默认配置,改为阿猫阿狗都没有问题。这个分支也可以删,但是需要特殊设置下。其实分支呢就是我们在版本控制过程中,使用多条线同时推进多个任务。

Git分支的好处?


  • 同时并行推进多个功能开发,提高开发效率

  • 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

Git分支操作

  • 查看分支:
 git branch -v
  • 创建分支:
git branch 新分支名
  • 删除分支:
 git branch -d branchname
  • 修改分支:
git branch -m oldbranchname newbranchname
  • 查看分支:
git branch      # 分支前有一个 * 号代表当前分支
  • 切换分支:
git checkout branchname
  • 合并分支:
git merge branchname

提交时发生冲突,你能解释冲突是如何产生的吗?你是如 何解决的?

开发过程中,我们都有自己的特性分支,所以冲突发生的并不多,但也碰到过。诸如公共类的公共方 法,我和别人同时修改同一个文件,他提交后我再提交就会报冲突的错误. 发生冲突,在IDE里面一般都是对比本地文件和远程分支的文件,然后把远程分支上文件的内容手工 修改到本地文件,然后再提交冲突的文件使其保证与远程分支的文件一致,这样才会消除冲突,然后再 提交自己修改的部分。特别要注意下,修改本地冲突文件使其与远程仓库的文件保持一致后,需要提交 后才能消除冲突,否则无法继续提交。必要时可与同事交流,消除冲突. 发生冲突,也可以使用命令:

通过git stash命令,把工作区的修改提交到栈区,目的是保存工作区的修改; 通过git pull命令,拉取远程分支上的代码并合并到本地分支,目的是消除冲突; 通过git stash pop命令,把保存在栈区的修改部分合并到最新的工作空间中;

一般什么情况下 我们会用到git stash命令?

命令git stash是把工作区修改的内容存储在栈区。 以下几种情况会使用到它: 解决冲突文件时,会先执行git stash,然后解决冲突; 遇到紧急开发任务但目前任务不能提交时,会先执行git stash,然后进行紧急任务的开发,然后 通过git stash pop取出栈区的内容继续开发; 切换分支时,当前工作空间内容不能提交时,会先执行git stash再进行分支切换;

git fetch和git pull命令之间的区别?

简单来说:git fetch branch是把名为branch的远程分支拉取到本地; 而git pull branch是在fetch的基础上,把branch分支与当前分支进行merge;因此pull = fetch + merge。