电商网站建设赏析,高端手机网站 制作公司,企业建立一个网站步骤,wordpress主题加速插件作者简介#xff1a;大家好#xff0c;我是未央#xff1b; 博客首页#xff1a;未央.303 系列专栏#xff1a;Git企业级开发 每日一句#xff1a;人的一生#xff0c;可以有所作为的时机只有一次#xff0c;那就是现在#xff01;#xff01;#xff01;#xff0… 作者简介大家好我是未央 博客首页未央.303 系列专栏Git企业级开发 每日一句人的一生可以有所作为的时机只有一次那就是现在 文章目录
前言
一、理解分支
二、创建、切换、合并分支
2.1 创建分支
2.2 切换分支
2.3 合并分支
三、删除分支
总结 前言
一、理解分支 分⽀就是科幻电影⾥⾯的平⾏宇宙当你正在电脑前努⼒学习 C 的时候另⼀个你正在另⼀个平⾏宇宙⾥努⼒学习 JAVA。 如果两个平⾏宇宙互不⼲扰那对现在的你也没啥影响。不过在某个时间点两个平⾏宇宙合并了结果你既学会了 C ⼜学会了 JAVA 图片示例 举例说明 在版本回退⾥你已经知道每次提交Git都把它们串成⼀条时间线这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前只有⼀条时间线在Git⾥这个分⽀叫主分⽀即 master 分⽀。 再来理解⼀下HEADHEAD 严格来说不是指向提交⽽是指向mastermaster才是指向提交的所以HEAD 指向的就是当前分⽀。 图片示例 每次提交master分⽀都会向前移动⼀步这样随着你不断提交master分⽀的线也越来越⻓,⽽HEAD只要⼀直指向master分⽀即可指向当前分⽀。 图片示例 通过查看当前的版本库我们也能清晰的理出思路: 代码示例 所以说HEAD指向的master分⽀是指向最新一次提交的 二、创建、切换、合并分支
2.1 创建分支 Git ⽀持我们查看或创建其他分⽀在这⾥我们来创建第⼀个⾃⼰的分⽀ dev 对应的命令为 代码示例 当我们创建新的分⽀后Git 新建了⼀个指针叫 dev * 表⽰当前 HEAD 指向的分⽀是 master 分⽀。 另外可以通过⽬录结构发现新的 dev 分⽀ 代码示例 hyb139-159-150-152:~/gitcode$ ls .git/refs/heads/ #通过目录结构查看heads分支 dev master hyb139-159-150-152:~/gitcode$ cat .git/refs/heads/* 5476bdeb12510f7cd72ac4766db7988925ebd302 5476bdeb12510f7cd72ac4766db7988925ebd302 发现⽬前 dev 和 master 指向同⼀个修改。 并且也可以验证下 HEAD ⽬前是指向 master 的。 代码示例 hyb139-159-150-152:~/gitcode$ cat .git/HEAD ref: refs/heads/master 图示总结上述过程 2.2 切换分支 那如何切换到 dev 分⽀下进⾏开发呢使⽤ git checkout 命令即可完成切换 代码⽰例如下 hyb139-159-150-152:~/gitcode$ git checkout dev #切换到dev分支 Switched to branch dev hyb139-159-150-152:~/gitcode$ git branch #此时HEAD 指向的分⽀是dev分支 * dev master hyb139-159-150-152:~/gitcode$ cat .git/HEAD # 验证下 HEAD⽬前是指向 master ref: refs/heads/dev 图示说明上述过程 我们发现 HEAD 已经指向了 dev就表示我们已经成功的切换到了 dev 上 接下来在 dev 分⽀下修改 ReadMe ⽂件新增⼀⾏内容并进⾏⼀次提交操作 代码示例 hyb139-159-150-152:~/gitcode$ vim ReadMe #修改文件内容 hyb139-159-150-152:~/gitcode$ cat ReadMe #查看文件的内容 hello bit hello git hello world hello version1 hello version2 hello version3 write aaa for new branch #发现在文件中新增了一行内容 hyb139-159-150-152:~/gitcode$ git add . #将工作区的文件添加到暂存区 hyb139-159-150-152:~/gitcode$ git commit -mmodify ReadMe #将工作区的文件提交到本地库 [dev 3740dce] modify ReadMe 1 file changed, 1 insertion() 现在dev 分⽀的⼯作完成我们就可以切换回 master 分⽀ 代码示例 hyb139-159-150-152:~/gitcode$ git checkout master #切换回master分支 Switched to branch master hyb139-159-150-152:~/gitcode$ cat ReadMe #查看ReadMe文件的内容 hello bit hello git hello world hello version1 hello version2 hello version3 切换回 master 分⽀后发现ReadMe⽂件中新增的内容不⻅了赶紧再切回 dev 看看: 代码示例 hyb139-159-150-152:~/gitcode$ git checkout dev #切换到dev分支 Switched to branch dev hyb139-159-150-152:~/gitcode$ cat ReadMe #查看文件的内容 hello bit hello git hello world hello version1 hello version2 hello version3 write aaa for new branch 在 dev 分⽀上内容还在。 为什么会出现这个现象呢我们来看看 dev 分⽀和 master 分⽀指向发现两者指向的提交是不⼀样的 代码示例 hyb139-159-150-152:~/gitcode$ cat .git/refs/heads/dev bdaf528ffbb8e05aee34d37685408f0e315e31a4 hyb139-159-150-152:~/gitcode$ cat .git/refs/heads/master 5476bdeb12510f7cd72ac4766db7988925ebd302 看到这⾥就能明⽩了因为我们是在dev分⽀上提交的⽽master分⽀此刻的提交点并没有变此时的状态如图如下所⽰。 图示状态说明 当切换到 master 分⽀之时HEAD 就指向了 master当然看不到提交了 2.3 合并分支 为了在 master 主分⽀上能看到新的提交就需要将 dev 分⽀合并到 master 分⽀。 代码⽰例如下 hyb139-159-150-152:~/gitcode$ git branch * dev master hyb139-159-150-152:~/gitcode$ git checkout master # 切换到 master 上进行合并 Switched to branch master hyb139-159-150-152:~/gitcode$ git merge dev # 合并 dev 分支 Updating 16623e1..3740dce Fast-forward ReadMe | 1 1 file changed, 1 insertion() hyb139-159-150-152:~/gitcode$ cat ReadMe # 此时我们再查看ReadMe hello bit hello git hello world hello version1 hello version2 hello version3 write aaa for new branch git merge 命令⽤于合并指定分⽀到当前分⽀。合并后master 就能看到 dev 分⽀提交的内容 了。此时的状态如图如下所⽰ 图示状态过程 Fast-forward 代表“快进模式”也就是直接把master指向dev的当前提交所以合并速度⾮常快。 当然也不是每次合并都能 Fast-forward我们后⾯会讲其他⽅式的合并。 三、删除分支 合并完成后, dev 分⽀对于我们来说就没⽤了 那么dev分⽀就可以被删除掉注意如果当前正处于此分⽀下就不能删除当前分⽀如 代码示例 hyb139-159-150-152:~/gitcode$ git branch #查看本地分支情况 * dev master hyb139-159-150-152:~/gitcode$ git branch -d dev #删除dev分支 error: Cannot delete branch dev checked out at /home/hyb/gitcode ⽽可以在其他分⽀下删除当前分⽀如 hyb139-159-150-152:~/gitcode$ git checkout master #切换到master分支 Switched to branch master hyb139-159-150-152:~/gitcode$ git branch -d dev #删除dev分支 Deleted branch dev (was bdaf528). hyb139-159-150-152:~/gitcode$ git branch #查看本地分支情况 * master #此时只有master分支了 此时的状态如图如下所⽰。 图示状态示例 因为创建、合并和删除分⽀⾮常快所以Git⿎励你使⽤分⽀完成某个任务合并后再删掉分⽀这和直接在master分⽀上⼯作效果是⼀样的但过程更安全。 总结