我有一个 git 问题,答案应该在 stackoverflow 上的某个地方,但我找不到。
想象一个团队正在使用 sass 或其他构建文件处理某个项目。多个开发人员构建文件,我们希望对构建的文件进行版本控制,以防非开发人员想要克隆并签出项目而无需先构建。
但是在项目中包含构建的文件总是会产生合并冲突。
我们可以忽略本地更改,只让首席开发人员不时检查他的版本。
忽略可以使用用户定义的 .gitignore 文件或使用:
$ git update-index --assume-unchanged path-to-file.css
但这在拉动时会产生问题。
$ git pull
remote: Counting objects: 30, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 16 (delta 11), reused 16 (delta 11)
Unpacking objects: 100% (16/16), done.
From github.com:User/MyProject
4e1s389..a231344 development -> origin/master
Updating 63sdf04..a231344
error: Your local changes to 'path-to-file.css' would be overwritten by merge.
Aborting.
Please, commit your changes or stash them before you can merge.
一种解决方法是始终检查文件,例如使用别名:
git config --global alias.cobuilded 'checkout path-to-file.css'
然后经过一些工作和建设:
git cobuilded
git commit -am "work done"
git pull
git push
但是对于这个问题应该有某种更简单的解决方案,对吧?
git ignore-this-file-and-always-merge-theirs-from-origin path-to-file.css
我已经找到了这个问题和一个可能的解决方案来始终合并他们的问题。但就我而言,合并之前的拉动已经失败......