2013-04-22 117 views
0

我有一个裸露的回购网络驱动器和两个客户端克隆php项目到他们自己的PC。 所有这些都由TortoiseGIT操作。检测到更改为GIT裸回购

假设客户端A和客户端B具有相同的修订副本。

  1. 对index.php做一些修改。
  2. 承诺自己的回购,然后推到裸回购。

但是,在客户端B项目文件夹中,更改后的文件仍作为更新(带有刻度的绿色图标)。

无论如何,客户B会有通知或实时更改TortoiseGIT的覆盖图标吗?

为什么我想这样做,因为我们的客户端在开始工作之前需要执行git fetch命令并查看日志。

他们可以在开始工作之前进行git合并,而不是稍后解决冲突。

+0

它看起来像你会让克隆表现得好像他们在同一个目录中(就像每个人都在同一个结账中工作一样)。这是不推荐的(对于任何VCS),准备就绪时获取/提取最新更改是最好的方法。 – 2013-04-22 07:18:01

+0

你应该对其他客户端进行“git pull”。你可以看看'git hooks'的一些方法来自动化这个/到一定程度/但(a)我不认为它通常在Windows上使用,(b)它对检出分支有限制。 – sehe 2013-04-22 07:18:08

回答

2

GIT是一个分布式版本控制系统。这意味着每个本地存储库都可以 - 也可以 - 独立工作。只有在执行提取时,拉或推才会联系另一个存储库。

本地存储库不关心任何配置的远程存储库的实际状态,除非通过提取或拉取明确告知。 GIT没有办法实现你想要做的事情。
您可以通过挂钩(在裸仓库中)和脚本(在每个开发人员机器中)的组合来实现此目的,但我会建议您不要这样做。


BTW:对于最集中的版本控制系统,如SVN例如,这个工程一样的:你以前的工作拷贝知道该服务器有一个改变的版本做一个更新。

+0

感谢您的回答,所以GIT和SVN无法做到这一点,TFS如何?或者任何VCS支持这个功能? – Cheung 2013-04-22 07:36:23

+0

@SilverNight:我不知道。但是,TFS支持锁定一个文件,即能够编辑一个文件,您必须首先检查它。如果另一个用户已经签出该文件并将其锁定,则您的结帐将失败。但是这只能防止用户同时在同一个文件上工作。它并不妨碍处理陈旧的数据。在开始工作之前,只要养成更新本地副本的习惯。这就是其他人也可以工作的方式:) – 2013-04-22 07:39:51