安装 git 的三个地方:Local、Bare 和 Development。
我从本地推送到裸机,接收后挂钩将我的开发分支从裸机推送到开发。提交出现在 git 日志中就好了,但是,如果 Development 当前在它接收的分支上,我会得到一个已暂存并准备提交的文件的修改列表。
问题是暂存文件实际上是旧代码(预提交),为了使我新推送的代码可见,我需要 git stash 一切。我想要完成的是,当代码从 Local 推送到 Bare 时,它可以自动在 Development 服务器上查看,并且不需要直接操作 Development。
一个例子——在本地:
更改“dev”分支上的 autoload.php 以使用新的 php 5.4 数组
$autoload = []; // instead of $autoload = array();
推送到我的 Bare repo
git push
Post-receive 正确触发并将代码从 Bare 的“dev”分支移动到 Development 的“dev”分支。
现在,如果我在 Development 上执行 git status,我有:
modified: application/config/autoload.php
autoload.php 仍然显示旧代码:
$autoload = array();
只有在我执行 git stash 之后,我的新代码才可见。