git 的重要场景是多人协同开发。

1.git分支相关操作

1.1 分支的创建

查看所有分支 git branch
新建分支 git branch [分支名称]

1.2 分支切换

git chechkout [分支名称]

1.3 分支合并

先切回主分支,再将分支进行合并

  1. git checkout master # 切回主分支
  2. git merge issue102 # 将issue102分支合并到主分支

分支合并经常会遇到冲突,这个时候有三种处理方法:

  • 手动合并手动合并的方法很简单,就是我们选择我们要保留的代码,然后再把>>>>>, ======, <<<<<<这些提示行给去掉。最后重新进行add commit的操作即可。
  • 放弃合并当我们发现冲突所导致的改动量很大时,我们可以选择放弃该次的合并。我们可以使用git merge --abort放弃此次的融合。如果我们在运行了git merge之后又进行了一些人为的改动,那么在abort之后,所进行的改动也会被回滚掉。
  • mergetool除了手动合并以及放弃合并之外,我们还有一些其他的合并工具。git官方开发了一个专门用来合并的工具,叫做git mergetool(下图所示),它会将找到一份两个分支的祖先代码作为base(基准),然后再将两个分支的改动都列举出来作为对比,让我们在git编辑器当中决定要留下什么。在此处,我们不做过多的阐述,感兴趣的同学可以点击下方链接进行查看。
  1. Use vimdiff as git mergetool
  2. 使用vimdiff作为git mergetool
  3. git-mergetool

1.4 分支推送到远程

  1. git push origin master # 将本地的master分支推送到远程
  2. git push origin issue102 # 将本地的issue102推送到远程分支

1.5 分支的删除、重命名

  1. git branch -d [branchName] # 删除本地分支
  2. git push origin --delete [branchName] # 删除远程分支
  3. git branch -m [oldBranchName] [newBranchName] # 分支重命名

2.分支开发工作流

长期分支 和 短期分支

  1. master分支应该是最稳定的,也就是仅用来发布新版本,平时不能直接在上面进行操作,应该保存在远程。
  2. 短期分支是我们干活的分支,短期分支可以不用上传到远程,当我们完成了bug的修复,新功能的开发时才需要合并到主分支上。
  3. 多使用分支来进行开发工作。