Git分支

作者: 你weixiao的时候很美 | 来源:发表于2020-06-19 10:08 被阅读0次
一: 分支的简介

git保存的不是文件的变化或者差异,而是一系列文件的快照。

1.提交

在提交的时候,git会保存一个提交对象。

提交对象包含:

  • 提交信息(作者姓名,提交输入的信息等),
  • 指向父对象的指针,
  • 指向树对象的索引。

树对象(树形的结构)包含:

  • 保存着文件快照的blob对象。
  • 目录结构
git提交.png
2.分支

分支的本质是指向提交对象可变指针,仅仅包含了它所指向的提交对象的校验和。
每次提交,可变指针会移动,指向最新的提交对象。

2.1 创建分支
创建分支就是创建一个可移动的新的指针

git branch [branchName]  只创建了一个分支,而不切换过去,不常用

2.2 分支切换和当前分支
Git有一个名为HEAD的特殊指针,它当前指向的分支就是当前分支。

分支切换就是HEAD指针从一个分支指向另一个分支。
切换分支会修改工作目录,git会自动增删改文件以确保工作目录和切换到的分支一模一样。

git  checkout [branchName]  切换分支

创建并切换到新分支,常用。

git  checkout -b  [newBranchName]
3.分支的合并

3.1 Fast-forward合并:

  • 当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候,只会简单的将指针向前推进。
  • 此类合并没有提交。

3.2三方合并:

  • 如果两个合并的分支从一个较早的地方分叉开来,GIt会使用两个分支的快照和二者的工作祖先做一个简单地三方合并。
  • Git会根据三方合并的结果做出一个新的快照,并自动创建一个新的提交指向它,此次提交称为合并提交,它有不止一个父提交。

3.3冲突
如果在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git 就没法干净的合并它们。

此时 Git 做了合并,但是没有自动地创建一个新的合并提交 (这里很重要),此时的状态是合并了代码,但是没有合并干净,也没有提交。

此时需要解决冲突,标记已经解决(add), 提交(commit)。

二:远程分支

1 定义:远程跟踪分支是远程分支状态的引用。

  • 以 remote/branch 形式命名,比如 origin/master
  • 他们是你不能移动的本地引用

2 抓取服务器仓库数据,并更新本地仓库。 移动远程跟踪分支指针指向新的位置。

git fetch origin 

git fetch 只是抓取了远程仓库数据并更新了本地仓库, 如果远程仓库有新的远程分支origin/branch_fix,在本地并没有创建一个新的本地分支branch_fix,只有一个不可修改的 远程跟踪分支指针origin/branch_fix。

3 推送到某个本地分支 到远程服务器某个分支 不常用

git push origin branch_fix  和下边一句含义相同
git push origin refs/heads/branch_fix : refs/heads/branch_fix

git push origin  [localBranchName] : [remoteBranchName]

4.删除远程分支

git push origin --delete  [branchName]
三:跟踪分支 最常用

1.定义 : 从一个远程跟踪分支检出一个本地分支会自动创建所谓的“跟踪分支”

当克隆一个仓库时,它通常会自动地创建一个跟踪 origin/master 的 master 分支

2.从远程跟踪分支检出本地跟踪分支

git checkout -b branch_fix  origin/branch_fix
git checkout --track  origin/branch_fix

3.设置已有的本地分支跟踪一个远程分支

git branch -u origin/branch_fix
git branch --set-upstream-to origin/branch_fix

相关文章

  • git常用命令

    分支管理 git 切换分支 git 查看远程分支 git 查看本地分支 git 创建本地分支 git 删除本地分支...

  • 关于Git使用笔记

    Git使用分支: 查看所有分支:git branch -a 创建分支:git branch de 切换分支:git...

  • git 查看远程分支、本地分支、删除本地分支

    1查看远程分支git branch -a 2查看本地分支git分支 3创建分支git分支测试 4删除远程分支git...

  • git分支指令

    git分支指令 查看git都有哪些分支:git branch -a(包括本地分支和远程分支)git branch ...

  • 创建与合并分支

    Git鼓励大量使用分支:查看分支:git branch创建分支:git branch 切换分支:git...

  • git分支和squelize-cli相关命令

    Git鼓励大量使用分支: 查看分支:git branch 创建分支:git branch 切换分支:git che...

  • 分支

    新建分支git branch [分支名] 切换分支git checkout [分支名] 新建分支并切换到分支git...

  • git 常用指令

    分支 查看分支: git branch 查看远程分支: git branch -a 创建分支: git branc...

  • 创建与合并分支

    查看分支:git branch 创建分支:git branch 切换分支:git checkout 创建+切换分支...

  • 【操作】git版本控制流入门命令FQ#1

    查看分支:git branch -a创建分支:git branch切换分支:git checkout创建+切换分支...

网友评论

      本文标题:Git分支

      本文链接:https://www.haomeiwen.com/subject/hcpdcctx.html