0

安装 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 之后,我的新代码才可见。

4

1 回答 1

0

你不应该推到一个非裸分支。这就是导致事情以这种方式不同步的原因。当您 git stash 时,它具有将文件同步回 HEAD 的效果,其中现在包括您的更改。

最好连接到开发服务器并让它执行 git pull。

于 2013-01-14T16:04:46.643 回答