Git 分支

一,何为分支(https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E4%BD%95%E8%B0%93%E5%88%86%E6%94%AF

有以下几种类型的对象(参考上面链接的图,有图有真相):
blob: 每个文件提交后存储为blob。git add之后会存储这些文件到git仓库中
tree: 所有目录提交后,存储为tree。git commit之后会存储目录到仓库中
commit:提交信息和一个指向tree的指针。每个commit都会有一个指向tree的指针。
分支:指向一个commit的指针。分支其实就是从某个提交对象往回看的历史
HEAD: 指向当前分支的指针

二,分支的合并与创建

git branch [分支名字]: 创建一个分支
git checkout [分支名称]: 切换分支
git checkout -b [分支名称]: 相当于上面两条命令之和
git merge: 合并分支。使用三方(两个分支的最新快照和共同祖先)合并的方式
git branch -d:删除分支

三,分支管理

git branch: 列出分支清单
git branch –merged:查看哪些分支已被并入当前分
git branch –no-merged: 查看尚未合并的工作

四,利用分支进行开发的工作流程

长期分支
特性分支

五,远程分支

  远程分支(remote branch)是对远程仓库中的分支的索引。它们是一些无法移动的本地分支;只有在 Git 进行网络交互时才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置。
git fetch origin:获取远程分支
git push [远程名] [本地分支]:[远程分支]:推送分支到服务器。
git push [远程名] :[分支名]:删除远程分支
  从远程分支 checkout 出来的本地分支,称为 跟踪分支 (tracking branch)。跟踪分支是一种和某个远程分支有直接联系的本地分支。在跟踪分支里输入 git push,Git 会自行推断应该向哪个服务器的哪个分支推送数据。同样,在这些分支里运行 git pull 会获取所有远程索引,并把它们的数据都合并到本地分支中来。
  在克隆仓库时,Git 通常会自动创建一个名为 master 的分支来跟踪 origin/master。这正是 git push 和 git pull 一开始就能正常工作的原因。当然,你可以随心所欲地设定为其它跟踪分支,比如 origin 上除了 master 之外的其它分支。刚才我们已经看到了这样的一个例子:git checkout -b [分支名] [远程名]/[分支名]。如果你有 1.6.2 以上版本的 Git,还可以用 –track 选项简化

六,分支的衍合

git rebase:把解决分支补丁同最新主干代码之间冲突的责任,化转为由提交补丁的人来解决。一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值