我正在使用git来跟踪项目,如果可能的话,我想设置一下,以便git处理我的所有代码暂存,我可以有一个本地存储库进行测试,然后将更改推送到服务器用git让他们活着。但是,在尝试使用标准git push
调用时,我最终会出现不一致的分支和可怕的混乱历史。有没有办法使用git管理登台?
答案 0 :(得分:9)
你在这个blog post中有一个用于登台的Git repo的例子:
IDE => local Git repository => remote bare Git repository
=> Git repository with the live web application
它涉及裸仓库上的更新后挂钩,以便在实时Web服务器端触发更新。
最后一步是在裸存储库上定义“更新后”钩子脚本,当裸存储库接收数据时调用该脚本。 要启用“更新后”挂钩,我们必须使
hooks/post-update
可执行或将hooks/post-update.sample
重命名为hooks/post-update
,具体取决于Git版本。
在这个脚本中,我们只需更改为实时应用程序的文件夹,然后启动拉取操作:
#!/bin/sh
cd $HOME/example.org
unset GIT_DIR
git pull bare master
exec git-update-server-info
有一个裸露的远程仓库的原因是因为“劝阻”推进一个带有工作目录的仓库。
答案 1 :(得分:0)
即使git是一个分布式版本控制系统,拥有一个中央存储库(可能是一个--bare
)通常也是个好主意。它会简化事情。