git使用教程(二)--分支管理

本文模拟不同开发者协同开发,分别以计算器加减乘除模块来代替

目录结构:
git使用教程(二)--分支管理_第1张图片
创建文件以及提交到仓库的命令不过多阐述,在使用教程(一)已详细说明

Step1:创建新分支

创建加法分支 git/add

git branch git/add #创建加法分支
git checkout git/add #切换到加法分支
或者,创建的时候,直接切换
git checout -b git/add 

在这里插入图片描述
提交新的模块 add(),命令如下

在这里插入图片描述

创建减法分支

提交sub模块

git checkout -b git/sub #创建并切换sub分支
git add main.go calcTest/sub.go
git commit -m "this is commit by user sub" main.go calcTest/sub.go

git使用教程(二)--分支管理_第2张图片

Step2:合并分支 git merge

#1.切换到主分支
git checkout master #切换主分支
#2.合并分支 add
git merge git/add
#3.合并分支 sub
git merge git/sub

git使用教程(二)--分支管理_第3张图片

查看分支:git log

git使用教程(二)--分支管理_第4张图片

Step3 合并分支命令2 :rebase

当多个分支合并时,尽量使用rebase命令,

  1. 可以使得提交log按时间线排列
  2. 减少Merge branch “duke/multi”等log日志出现,更加简洁

操作流程:

  1. git rebase duke/multi
  2. 如果发生冲突,需要手动解决(同merge冲突)
  3. 如果不想提交,可以使用git rebase ----abort
  4. 如果想提交,解决冲突后,使用git rebase --continue即可,不需要使用git commit

创建分支和提交文件同上。创建mul分支和div分支

 git checkout -b git/mul 
 git add main.go calcTest/mul.go
 git commit -m "this is commit by user mul" main.go calcTest/mul.go

git使用教程(二)--分支管理_第5张图片

git checkout -b git/div
git add main.go calcTest/div.go
git commit -m "this is commit by uesr div" main.go calcTest/div.go

git使用教程(二)--分支管理_第6张图片
一般情况下rebase都是会有冲突的,详细查看冲突可以用命令git status然后就会显示哪个文件有冲突,然后打开有冲突的哪个文件,会发现有一些“<<<<<<<”, “=======”, “>>>>>>>” 这样的符号。

<<<<<<< #表示冲突代码开始

======= #表示test与master冲突代码分隔符

>>>>>>> #表示冲突代码的结束

Step4:暂存命令 stash

当开发过程中,还没有办法编译的时候,可能临时出现一个需要紧急处理的bug:

  1. 当前代码不能提交
  2. bug还需要创建新的分支解决。
    需要,将当前分支的代码暂存起来,去解决bug,解决之后,再唤醒之前的存放代码,继续开发。
    git stash命令可以帮忙解决
git stash

在这里插入图片描述
当前分支的所有暂存区的数据会被临时存储起来,分支就像没有修改过一样。
可以基于分支解决bug,当bug解决后使用git stash pop 唤醒暂存数据

git stash pop

git使用教程(二)--分支管理_第7张图片

git stash list #查看当前stash数据

如果确定不要的stash,可以使用clear清理掉(慎用)

git stash clear

Step5:版本回退 reset

1. git reset <哈希值>

每一个提交都会有一个哈希值,使用git log可以查看

git使用教程(二)--分支管理_第8张图片
此时会将版本回退到指定哈希版本,但是回退中间提交的代码会保留下来
git使用教程(二)--分支管理_第9张图片

2. git reset --hard <哈希值>

执行此命令,此时会直接会推到指定版本,但是中间提交的记录,会之前删除掉

3.查看该分支的所有操作 git reflog
git使用教程(二)--分支管理_第10张图片

你可能感兴趣的:(git使用教程(二)--分支管理)