0

我拥有的是一个本地存储库和 2 个远程存储库(一个bare称为裸机,一个非裸机称为 dev)。

我想要实现的是一个简单的部署,这样当我推送到裸存储库时,开发存储库会提取更改。

我在裸存储库上使用了一个接收后挂钩,它只是做:-

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 个裸存储库并将开发的存储库从挂钩中签出到所需的文件夹会更好吗?

4

2 回答 2

1

为什么要为已部署的版本使用存储库?

只需使用GIT_DIR=path/to/app git checkout -f将文件从裸仓库签出到应用程序位置,即可避免此类问题。

于 2012-04-14T13:47:52.697 回答
0

尝试存储更改,然后将其弹出:

cd (path-to-dev-repo)
unset GIT_DIR
git stash
git pull origin master
git stash pop
于 2012-04-14T12:31:27.617 回答