【git】git的分支
2016-03-21 16:50
351 查看
1.认识
★git如何保存数据 :每次提交之间的关联是提交对象中包含了前一次树对象的指针,这样层层关联★分支本质:仅仅是指向提交对象的可变指针
2.分支命令
2.1 创建分支 :不同分支上的操作互不影响 (master只是git为你默认创建的一个分支,和自己创建的一样,只是名字不同)
git branch <branch-name> //创建分支
2.2 查看不同的分支
git branch -a //查看本地和远程的所有分支 git branch -r //查看远程分支 git branch -l //查看本地分支 git branch -v //查看每一个分支的最后一次提交 git branch --merged //查看哪些分支已经合并到当前分支 --no
★查看各个分支当前所指对象
git log --oneline --decorate
2.3 切换分支
git checkout <branch-name>★原理 : 在 .git 文件夹中保存着一个名为HEAD的文件,其中记录着当前项目所在的分支
★创建并切换分支
git checkout -b <branch-name> //相当于两条命令,一条创建,一条切换 git checkout -b issue53 //创建 issue53分支并切换
2.4 合并分支
git merge <branch-name> //将当前所在的分支和 <branch-name>合并 ,简单将指针向前推进(fast-forward)★合并有冲突的分支:按上面所述命令合并后,有冲突的文件会以未合并状态(unmerged)标识出来,使用git status 查看,然后手动解决,解决后用git add标示已解决
git status git add
2.5删除分支
git branch -d hotfix //对于已合并的分支,删除分支hotfix git banch -D hotfix // 对于未合并的分支 ,强行删除分支
2.6 推送 :将代码推送到远程服务器上
git push <remote-name> <branch-name> git push origin master //推送到远程的origin服务器的master分支上 git push origin <local branch-name>:<remote branch-name> //本地和服务器上的分支名不同 git push origin servefix:remote-server //将本地的serverfix推送到远程的origin的remote-server上
2.7 拉取
git pull //相当于git fetch 然后 git merge
2.8跟踪分支
★从远程服务器上检出本地分支会自动创建一个跟踪分支(上游分支),git pull就是根据跟踪分支来向那个分支抓取★检出并创建分支和其快捷方式
git checkout -b <local branch-name> <remote-name>/<branch-name> git checkout --track <remote-name>/<branch-name> //创建并检出分支的快捷方式
2.9 删除远程分支
git push origin --delete serverfix //删除远程分支serverfix
2.10变基 rebase
★ merge :把两个分支的最新快照(C3、C4)以及最近的共同祖先(C2)三方合并,生成一个新的快照并提交 (记录实际发生过什么)★★实现过程(test合并到master)
git checkout master //切换到master分支 git merge test //将test分支合并到master分支
★rebase:和merge的结果一样,但是能保证提交历史的整洁,就好像没有分叉一样,即和merge的提交历史不一样 (过程中发生的故事)
★★原则:未推送或者未分享给别人的本地修改执行变基操作
★★实现过程(test合并到master)
git checkout test //切换到test分支 git rebase master //将test分支和master分支所做的修改提取重新排列保存为临时文件,最后应用此文件 git checkout master //重新回到主分支,此时的文件已重新排序 git merge test //进行一次快进合并
《以上为git 分支的相关操作,整理学习》,详情参看 :git官网文档
相关文章推荐
- 页面字符集问题
- OrderBy排序1,2,0,0,0,0
- 学习笔记——下拉列表左右选择
- 大型网站系统架构的演化
- UVA 11988——Broken Keyboard (a.k.a. Beiju Text)
- HOG特征
- Chrome之保护视力色
- linux 常用命令
- event.keyCode用法详解
- 数据挖掘十大经典算法(八) kNN: k-nearest neighbor classification
- java中Character和char的区别
- 夺命雷公狗---DEDECMS----18dedecms之无可奈何标签-sql标签取出今天更新
- 数组的相关问题
- 六款值得推荐的android(安卓)开源框架简介
- Html+CSS CSS3 Keyframe+Animation属性 CSS动画
- JAVA环境配置
- 数据结构之单链表操作
- 安卓属性动画(Property Animation)(下)
- vagrant
- hdu hdoj 1598 find the most comfortable road【最小生成树】