Мне нужно исключить папку dist/
из ошибок слияния, мне все равно, будет ли это theirs
, ours
или другая стратегия, но мне нужно держать ее в контроле версий, так как это способ развертывания в Heroku. .gitattributes
сценарий кажется подходящим вариантом. Но я не могу заставить эту работу работать.
Я прочитал этот канонический ответ и этот < href="https://stackoverflow.com/questions/14093540/tell-git-to-use-ours-merge-strategy-on-specific-files">похожий ответ, но не могу понять, что Я делаю неправильно.
Мой .gitattributes
конфиг:
* text=auto
dist/ merge=keepMine
Соответствующая часть моего .git/config
:
[merge "keepMine"]
name = always keep mine dist during merge
driver = keepMine.sh %O %A %B
и keepMine.sh
(в корневой папке моего проекта папка не находится в пути, но копирование в папку в пути не помогло и не является хорошим решением, поскольку сценарий должен быть частью контроля версий, поэтому все разработчики получил бы):
# copied as is from the SO answer
# I want to keep MY version when there is a conflict
# Nothing to do: %A (the second parameter) already contains my version
# Just indicate the merge has been successfully "resolved" with the exit status
exit 0
EDIT: Также попробовал git config merge.keepMine.driver true
, как было предложено в одном из ответов SO выше. Не работает.
Но я все еще получаю ошибки слияния (если я их создаю), например, например, в dist/styles/sdkasl.main.css
.
Что я делаю неправильно? Спасибо за помощь.
git check-attr --all dist/styles/sdkasl.main.css
- person jthill   schedule 30.04.2014dist/**
в файле .gitattributes? - person kfunk   schedule 07.01.2016.gitattributes
следуют тому же соглашению, что и.gitignore
, поэтому папка будет включать в себя все, что находится в этой папке и ниже. - person Haralan Dobrev   schedule 26.01.2018