Git 有没有法子让 merge 时,强制指定某些档案 conflict?

jossjoss54 · 2014年09月12日 · 最后由 williamherry 回复于 2014年09月12日 · 2340 次阅读

最近想利用注解的方式强制 git merge 的时候产生 conflict 但很不方便,似乎也很难办到 不知道可行吗? 有其他方式吗?

我们最近有做让 db/schema.rb 文件合并到 staging 的时候自动只使用 others,不知道可以可以用类似的方法解决你的问题,我们是这样做的

# cat .gitattributes
db/schema.rb merge=railsschema
# cat ~/.gitconfig
...
[merge "railsschema"]
  name = newer Rails schema version
  driver = keep_mine.sh %O %A %B %L
# cat /usr/local/bin/keep_mine.sh
#!/bin/sh

git merge-file --marker-size=$4 $2 $1 $3

target_branch=`git rev-parse --abbrev-ref HEAD`
if [ $target_branch == "staging" ]; then
  cp -f "$3" "$2"
fi

if `grep '<<<<' $2 &> /dev/null`; then
  exit 1
else
  exit 0
fi

相关的文档

好似最多只能这么办 没法子只在例如 schema.rb 内添加几行代码 就自动产生 conflict

自定义的 merge driver 返回 1 就可以了

需要 登录 后方可回复, 如果你还没有账号请 注册新账号