您现在的位置是:首页 >其他 >多分支merge忽略文件合并网站首页其他

多分支merge忽略文件合并

☜阳光 2024-10-11 00:01:03
简介多分支merge忽略文件合并

1. .gitattributes 文件的作用

.gitattributes 文件是 Git 版本控制系统中的一个配置文件,它用于指定 Git 如何处理文件的二进制数据,以及如何标识文件的类型。
具体来说,.gitattributes 文件的作用包括以下几个方面:

  • 指定二进制文件的类型:在.gitattributes 文件中,可以指定某些二进制文件的类型,例如文本文件、HTML 文件、CSS 文件等。这样,Git 就可以根据文件的类型来自动处理这些文件,例如将文本文件自动转换为 HTML 文件。
  • 设置 Git 如何处理这些文件:在.gitattributes 文件中,可以指定 Git 如何对文件进行处理。例如,可以指定 Git 如何处理这些文件的提交、标记、合并等操作。
  • 自定义文件类型的标志符:在.gitattributes 文件中,可以自定义文件类型的标志符。这样,当 Git 遇到这些文件时,就可以根据标志符来自动处理这些文件,例如将这些文件自动添加到某个分支中。
  • 禁用文件的自动处理:在.gitattributes 文件中,可以禁用某些文件的自动处理。例如,可以禁用 HTML 文件的自动转换为 CSS 文件的功能,这样,即使用户手动将 HTML 文件转换为 CSS 文件,Git 也不会自动处理这些文件。

总的来说,.gitattributes 文件是 Git 中非常重要的一个配置文件,它可以帮助用户更好地控制 Git 如何处理文件,以及如何自动处理文件。

2. git Merge的逻辑

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

3. 自定义Merge驱动

3.1设置全局 merge 操作的策略

在项目根目录下使用以下命令设置全局merge操作的策略

git config --global merge.ours.driver true

C$W9T%DTBJ_SHX2B_{HMW7S.png

3.2在项目根目录下添加.gitattributes 文件

在项目根目录下添加.gitattributes文件(与.git文件同级),在该文件中写入需要忽略的文件(支持通配符)
下面文件表示,在分支合并的时候忽略以下文件的merge

**/resource/application.yml merge=ours
**/resource/application-dev.yml merge=ours
**/resource/application-test.yml merge=ours
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。