[英]Git: simple deployment, how can I avoid 'pull not possible because you have unmerged files'
我所拥有的是一个本地存储库和2个远程存储库(一个bare
称为裸机,一个非裸机称为dev)。
我要实现的目标是一个简单的部署,以便当我将其推送到裸存储库时,开发存储库将进行更改。
我在裸存储库上使用了一个post-receive钩子,它简单地做到了:
cd (path-to-dev-repo)
unset GIT_DIR
git reset --hard HEAD # This is my failed attempt at stopping the merge conflicts
git pull origin master
当我对本地存储库进行更改并在开发人员尝试将其推送时将其裸露时,它会给我类似的东西:
CONFLICT (add/add): Merge conflict in application/01_sql_schema.sql
但是,我所做的唯一文件更改是对本地文件的更改-我不明白为什么仅在一个位置进行更改后就不能自动合并这些更改。
任何帮助深表感谢。
编辑:可能的替代解决方案
最好有2个裸存储库,然后从一个钩子中将开发库签出到所需的文件夹中?
为什么要为已部署的版本使用存储库?
只需使用GIT_DIR=path/to/app git checkout -f
从裸GIT_DIR=path/to/app git checkout -f
中检出文件到应用程序位置即可,避免出现此类问题。
尝试存储更改,然后将其弹出:
cd (path-to-dev-repo)
unset GIT_DIR
git stash
git pull origin master
git stash pop
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.