git 分支管理

前面在讲git的基本使用时提到过HEAD指向当前版本,但具体的情况是HEAD指向当前分支,当前分支指向最新的提交也就是当前版本

1.分支的创建与切换

查看当前分支

git branch,可以看到是默认的master分支

创建一个新的分支然后切换到新分支

git branch new_branch

git checkout new_branch

当然可以使用git checkout -b 分支 创建并切换到新分支

2.在新分支中提交一次修改

查看下git log

切换到master分支 git checkout master

再次查看git log,显然master分支没有我们刚刚提交的修改

3.分支的合并

现在我们在master分支中,我们要把new_branch分支合并过来

git merge new_branch

git log,可以看到合并成功了

4.分支的删除

合并成功之后可以删除分支了

git branch -d new_branch

5.分支合并的冲突问题

在上面第三点合并分支时采用的是fast-forward模式(只在新分支中编辑master已经存在的文件并提交,默认的方式,但是这种方式不会创建新的版本记录)

但是当我们新建一个分支后,在该分支与master分支编辑了同一个文件的相同部分并提交后再一次合并,此时就会出现冲突

此时可以在master中重新git add该文件,然后git commit即可

6.由于合并时fast-forward方式不会创建新的版本记录,在master中合并bug分支时我们就不知道最新的版本是否已经修复bug,此时可以使用

git merge --no-ff 分支 进行合并,使用git log -graph --pretty=oneline可以清楚的看到使用该命令创建了新的版本记录

7.储存工作场所

对工作区的部分文件修改工作未完成,但要优先处理其他分支的问题,此时不希望提交本工作区文件,可以先把工作区储存起来,等之后再进行恢复就可以继续编辑了

git stash 保存当前工作区 

git stash list 查看储存的工作区

git stash pop 恢复工作区继续编辑

 

原文地址:https://www.cnblogs.com/tele-share/p/10506922.html