git - merge=ours 的 git 属性不起作用
问题描述
我在 Windows 上使用 Sourcetree 3.0.12。我正在使用的命令行 git 版本是git version 2.18.0.windows.1
(至少当我从 Sourcetree 打开终端并获取 Cygwin 命令行时它是这样说的)。
我希望app/Resources/
我的树中的所有文件都受到“保护”,不受其他分支的更改;换句话说,我希望 git 总是将我的版本合并到那个文件夹中。所以我做了以下事情:
1) 在命令行中,在树的根部,我输入了git config --global merge.ours.driver true
.
2)在我的树的根部,我创建了一个.gitattributes
文件,上面写着:
app/Resources/ merge=ours
然后我尝试合并另一个分支中的更改......并且我在app/Resources
.
我阅读了一条临时评论,暗示此功能仅适用于较新版本的 git。是这样吗,还是我做错了什么?
编辑:按照下面的第一个答案,我手动编辑了我的.git/config
文件以添加:
[merge "ours"]
name = ours
driver = true
我在文件末尾添加了它,然后我再次尝试合并......但也没有用。
解决方案
看起来您正在尝试在那里定义自定义合并驱动程序。文档告诉您应该在另一个文件中执行此操作,然后引用它。这甚至在版本 2.18.0 中也成立。
合并驱动程序的定义是在
.git/config
文件中完成的,而不是在gitattributes
文件中,所以严格来说,这个手册页是一个错误的地方来谈论它。参考
如果我看一下示例,我会看到:
ab* merge=filfre
abc -foo -bar
*.c frotz
在filfre
git 配置文件中定义的位置。这至少应该解决您问题的第 2 部分,我建议您在那里尝试这种不同的方法。
对于第 1 部分,这里git config --global merge.ours.driver true
给出了已接受的答案,尽管我觉得其他答案更准确。事实上,接受的答案是由原始问题作者提供的,并没有提供太多内部信息。在修复不起作用的情况下,也可以使用已知的极端情况。您是否考虑过替代方法?
推荐阅读
- r - R中gamlss中的随机效应规范
- java - 将 java.sql.Date 转换为 LocalDateTime
- apache - 安装评论板问题:当我运行 localhost:8001 时,/var/log/apache2/error.log 中有“reviewboard.admin.siteconfig”错误
- java - BlastHadoop 实现上的 Java 异常
- python - 在 cmake 构建后,在 Python 的 site-package 文件夹中找不到 cv2
- javascript - chorme 扩展错误:未捕获的 ReferenceError:未定义窗口
- java - 如果我从网络中的不同电脑输入,我在 Angular 应用程序中收到错误 0
- jekyll - Jekyll + Liquid:从页面元数据中获取值列表
- css - 为样板代码组织一个通用类
- .net - 以编程方式扩展 AutoCAD 菜单