每当我将本地代码推送到我的登台服务器(远程存储库)时,它们都不会显示,而是以“git status”的形式显示为已删除。如何才能正确设置?
我所以我的工作在我的本地存储库('development'分支)。其他非Git人员正在将文件直接放在服务器上(并且服务器也会自行更新一段时间)。我已将服务器设置为“暂存”分支。当我想将我的代码推送到服务器时。我在'staging'分支中添加/提交服务器上所做的更改。然后我把它们拉到我当地的'staging'分支。我将它们与我的'开发'分支合并。然后我将'staging'分支推回到服务器。不幸的是,这已经不再有效 - 我的新文件会立即标记为“已删除”,并且我更改的文件会被标记为“已修改”。我该如何解决这个问题呢?这些文件甚至不会出现在目录中。
我怀疑这与我在那里做出的改变有关,以解决这是一个实时登台服务器的事实,我希望能够推送到签出分支。
git config receive.denyCurrentBranch ignore
任何帮助,想法,轻蔑,嘲笑,决心,赞赏。
答案 0 :(得分:0)
您是说您正在与未使用源代码控制的开发人员合作 - 只是将更改直接推送到您的部署?
你可以设置一个允许你的裸仓:
第一点可以通过cron作业完成,例如每分钟执行一次:
cd /your/bare/repo
git --work-tree /path/to/non/git/workingtree add -A
git commit -m "add files from non-git users"
(您可能希望调整此天真的实现,以便仅在添加文件时提交)
第二点需要在该裸仓库上通过 post-receive
hook 完成,以便自动在非git用户仓库上复制您的文件。
这不是一个理想的解决方案,因为总是存在竞争条件的可能性:它需要更强大,可能有一些chown
或其他权限管理,防止非git用户进行任何修改你正在推动 - 更新工作树。
但它向您展示了让两个世界相互合作的可能方式。