zoukankan      html  css  js  c++  java
  • git系列8(分支)

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

    $ git add README test.rb LICENSE2
    $ git commit -m 'initial commit of my project'
    当使用 git commit 新建一个提交对象前,Git 会先计算每一个子目录(本例中就是项目根目录)的校验和,然后在 Git 仓库中将这些目录保存为树(tree)对象。之后 Git 创建的提交对象,除了包含相关提交信息以外,还包含着指向这个树对象(项目根目录)的指针,如此它就可以在将来需要的时候,重现此次快照的内容了。

    现在,Git 仓库中有五个对象:三个表示文件快照内容的 blob 对象;一个记录着目录树内容及其中各个文件对应 blob 对象索引的 tree 对象;以及一个包含指向 tree 对象(根目录)的索引和其他提交信息元数据的 commit 对象。概念上来说,仓库中的各个对象保存的数据和相互关系看起来如图 所示:

    作些修改后再次提交,那么这次的提交对象会包含一个指向上次提交对象的指针

    在若干次提交后,你其实已经有了一个指向最后一次提交对象的 master 分支,它在每次提交的时候都会自动向前移动。

    创建分支命令

    git branch testing  这会在当前 commit 对象上新建一个分支指针

     

    要切换到其他分支,可以执行 git checkout 命令。我们现在转换到新建的 testing 分支

    git checkout testing
    这样 HEAD 就指向了 testing 分支

    我们修改其中一个文件

    提交

    我们再切回主分支,也修改对应的文件,提交,则testing分支,master分支文件版本则会如图所示

    这是我们可以通过

    git merge testing对分支进行合并

    如果有冲突,则需要我们手动解决冲突,然后就可以提交

    合并之后,就可以删除分支

    git branch -d testing

    git branch查看当前所有的分支

    git branch -v查看当前所有的分支版本

    git branch --merged 查看当前合并的分支

    git branch --no-merged 查看当前没有合并的分支

    没有合并的分支删除会失败,如果需要强行删除,则需要  git branch -D testing  

  • 相关阅读:
    js排序算法01——冒泡排序
    Math Issues
    2017年终总结
    js中的真值和假值
    element UI 中DateTimePicker 回传时间选择
    Equal Sides Of An Array
    javascript数组总结(0504)
    ajax生成html双引号问题
    关于php ci框架ie浏览器路径问题
    ie提示jquer缺少标识符,字符串或数字
  • 原文地址:https://www.cnblogs.com/youlangta/p/7679084.html
Copyright © 2011-2022 走看看