zoukankan      html  css  js  c++  java
  • 【转】git 分支合并时如何忽略某个文件

    关于git merge Google上有详细的概念,CSDN上也有一个博客说的很清楚,但是csdn的那个博客有些需要注意的坑说的不具体,于是坑了我1.5个小时。

    首先git merge大致是这样的逻辑(可以去看英文原文):git在merge分支时,有一个默认的merge驱动,这个驱动会去检查每个文件的每一行,如果按照一定规则发现两个分支的同一个文件有不同,那么认为两个分支都对这个文件做了修改,会merge两个文件,此时有可能产生冲突;那么如果我们自定义一个merge驱动,在里面定义一些不会被检查的文件,那git就会直接跳过这些文件,因此就不会merge,而我们自定义的这个merge驱动就是 ours。

    如图:

    步骤如下:

    1:创建我们的自定义merge driver:

    git config --global merge.ours.driver true

    这样选定了ours驱动,至于为什么不选择其它驱动,可以详看官方文档。PS:我也没细看。

    2:在要被merge的分支上创建.gitattributes 文件,并且在文件中置顶不merge的文件名:

    echo 'index.php merge=ours' >> .gitattributes
    git add .gitattributes
    git commit -m 'chore: Preserve index.php during merges'  //只是为了commit代码,可以

    .gitattributes文件内容如下:

    index.php merge=ours

    3:在合并的时候选择驱动要选择ours,这样就可以了。

    如果是命令行合并:

    (newbranch) $ git checkout master
    (master) $ git merge newbranch
    Auto-merging ...
    Merge made by the 'recursive' strategy.
     demo-shared | 1 +
     1 file changed, 1 insertion(+)

     from : http://www.voidcn.com/article/p-aohzmust-c.html

  • 相关阅读:
    IOS知识点收集
    多媒体层预览(Media Layer OverView)
    IOS Audio开发集合
    《android 1: 创建一个安卓项目》
    IOS 中的CoreImage框架(framework)
    [转载]面向对象的六大原则
    [转载]UDP丢包率提升
    产品与项目的区别
    关联、组合、聚合、依赖关系比较
    统一建模语言(UML,Unified Modeling Language)
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/13268872.html
Copyright © 2011-2022 走看看