git学习——<五>git分支
2015-08-21 20:19
309 查看
git学习——<一>git安装
git学习——<二>git配置文件git学习——<三>git操作
git学习——<四>git版本管理
一、提出问题
今天开发的过程中遇到一个问题,A组接到开发任务要修改file文件,B组在此之前的15天为了完成自己的开发任务对file文件进行了修改,为了同步代码,B组将自己未完成的模块file文件提交到了cvs上。A对此一无所知,A组在完成开发任务后,把file文件完全上到了现网环境,报错了。当然,避免上述问题的途径很多,有想法的朋友可以帮忙提议解决下。但是在使用git的时候,我就突然想到,如果每个团队是在主分支上迁出一个分支工作,直到自己的工作完成之后,再把代码提交到主分支上,那么别人上文件的时候从主分支上迁出的文件上现网环境也不会出上述的问题了。所以,学会建分支,在分支上开发代码,也很实用。
二、git分支
git把每次提交串成一条时间线,这条时间线就是一个分支。
如前面几个讲解里所讲到的:首次提交是一个master主分支。head不是指向提交,而是指向master,master才指向提交,故head指向的就是“当前分支”。创你建一个list分支,此时,就是一个创建了一个叫list的指针,指向了master相同的commit。而你的head指向了list,其他人的head依然指向master。
同理,如果你想删除list分支,其实没有删掉list分支提交的东西,只是删除了list的指针。
1.创建list分支
git checkout -b list 其中-b表示:创建并切换
2.查看当前分支
git branch会列出所有分支,当前分支有一个*号
3.提交内容到当前的分支
git add git commit
4.list分支的工作完成后,切换回master分支
git checkout master
5.把list分支的工作成果合并到master分支上
git merge list git merge命令用于合并指定分支到当前分支
6.删除list分支
git branch -d list
三、解决冲突
1.在master上创建分支
git branche -b list
2.在该分支上编辑readme.txt文件
3.然后切换到master分支git checkout master,编辑readme.txt文件
4.合并list到master
git merge list
5.解决冲突
冲突会包留在文件中,两个部分被===========================分割开。需要人工方式修改整合文件。
6.删除分支
git branch -d list
7.查看分支合并的路径
git log --graph --pretty=oneline --abbrev-commit
四、bug分支
假设,你在list分支上工作。此时master上出现了bug需要修复,那么你必须切换到master分支并修复该bug。
1.于是,你需要保存当前list分支上已工作的内容:把当前工作现场“储藏”起来
git stash
可以用git status查看当前工作区是否干净
2.切换到要修复bug的分支,然后创建一个新的分支去修复bug
修复完bug,提交合
3.切换回你之前的工作分支,恢复工作区
可以使用git stash list查看之前保存的工作区中的内容
git stash pop
可以恢复原工作区,并把stash中保留的内容删除掉,否则会一直存在。
相当于如下两条命令:
git stash apply
git stash drop
再用git stash list查看就不存在任何元素了
五、总结
相关文章推荐
- 深入理解JavaScript系列(32):设计模式之观察者模式
- RAFT algorithm
- win7 vmware 装的64位 ubuntu 没有声音解决办法
- nyoj106背包问题【贪心算法】~
- 数个大数据O2O域名专场【欢迎拿走】
- Codeforces 478B.Random Teams
- hdu1102(最小生成树)
- 报错“计算机丢失tbb_debug.dll”问题解决办法
- HDOJ 5311 Hidden String(DFS不错的题)
- 深入理解JavaScript系列(31):设计模式之代理模式
- zoj--3878
- Vimium快捷键
- 23种设计模式(Java)
- C# Ditcionary
- ASP.NET 动态创建文本框 TextBox (add TextBox to page dynamically)
- 深入理解JavaScript系列(30):设计模式之外观模式
- 热潮下的浮夸 让中国创业者丢了灵魂
- 如何在win7下安装python包工具pip
- 欢迎使用CSDN-markdown编辑器
- Functional MRI (second edition) -- 9. Experimental Design