• 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  

  • 相关阅读:
    TFS2010安装方法及序列号
    SQL2005还原数据库3154错误
    HTML5 离线开发
    服务器缓存不依赖URL的方法(OutPutCache)及客户端不缓存,完美做法
    TFS2010映射工作区问题 路径 XXX 已在工作区 XXX;XXX 中映射
    解决:DropDownList的AutoPostBack=True不能触发SelectedIndexChanged事件
    SQL Server 2008 R2 RTM (32&64) 中文版 下载地址&序列号
    window.open 详解
    ADO.NET Entity Framework Extensions 示例应用
    Partial Output Caching in ASP.NET MVC
  • 原文地址:https://www.cnblogs.com/youlangta/p/7679084.html
Copyright © 2020-2023  润新知