本地git分支管理

  • 查看分支,创建分支,切换分支(apeng)

  • 在apeng分支下创建文件apeng1.txt提交给服务端

  • 切换到master分支下,查看apeng1.txt有没有在master分支下(分支之间是相互隔离开的)

  • 将apeng分支合并到master分支上

      1.先切换到master分支
      2.将apeng分支合并到master分支上
    
  • 在master,apeng分支下分别修改apeng1.txt,并提交,再将apeng分支合并到master分支上,会产生冲突

  • 解决冲突的方法是在master分支下,编辑apeng1.txt,改为apeng分支里面apeng1.txt的内容,然后提交,再合并apeng分支

但是这样有一个问题,万一master分支更改的内容是我们想要的呢?可以编辑apeng1.txt内容,改为想要的,然后提交。切换到apeng分支,然后合并master分支到apeng分支即可。

  • 合并分支有一个原则,那就是要把最新的分支合并到旧的分支。也就是说merge后面跟的分支名字一定是最新的分支
  • 删除分支

代码如下:

cd /git/local/
git branch   //查看分支
git branch apeng  //创建分支apeng
git checkout apeng //切换分支到“apeng”
[root@localhost local]# git branch //代表当前在apeng这个分支下
* apeng
  master
[root@localhost local]# echo "apeng1" > apeng1.txt
[root@localhost local]# git add apeng1.txt
[root@localhost local]# git commit -m "add apeng1.txt"
[root@localhost local]# git checkout master
切换到分支 'master'
[root@localhost local]# ls  //发现并没有apeng1.txt
git-test.file
[root@localhost local]# git merge apeng
更新 ff5a978..f4ecf82
Fast-forward
 apeng1.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 apeng1.txt
[root@localhost local]# ls
apeng1.txt  git-test.file

在master,apeng分支下分别修改apeng1.txt,并提交,再将apeng分支合并到master分支上,产生了冲突

[root@localhost local]# git branch
  apeng
* master
[root@localhost local]# vim apeng1.txt 
[root@localhost local]# git add apeng1.txt
[root@localhost local]# git commit -m "master-modify-apeng1.txt"
[root@localhost local]# git checkout apeng 
切换到分支 'apeng'
[root@localhost local]# vim apeng1.txt 
[root@localhost local]# git add apeng1.txt
[root@localhost local]# git commit -m "apeng-modify-apeng1.txt"
[root@localhost local]# git checkout master 
切换到分支 'master'
[root@localhost local]# git merge apeng 
自动合并 apeng1.txt
冲突(内容):合并冲突于 apeng1.txt
自动合并失败,修正冲突然后提交修正的结果。


解决冲突(冲突时不可以切换到另一个分支)

[root@localhost local]# cat apeng1.txt 
apeng1
<<<<<<< HEAD
master-modify
=======
apeng-modify-apeng1.txt
>>>>>>> apeng
//将文件改成如下
[root@localhost local]# cat apeng1.txt 
apeng1
apeng-modify-apeng1.txt

[root@localhost local]# git add apeng1.txt
[root@localhost local]# git commit -m "modify1-apeng1.txt"
[master 988df3f] modify1-apeng1.txt
[root@localhost local]# git merge apeng
Already up-to-date.

删除分支

[root@localhost local]# git branch -d apeng //不能删除自己所在的分支
error: 无法删除您当前所在的分支 'apeng'。
[root@localhost local]# git checkout master 
切换到分支 'master'
[root@localhost local]# git branch -d apeng
已删除分支 apeng(曾为 36c313c)。