本地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)。