网络驱动器上的开发权
Development right on network drive
我是一家大公司内的一个小型 PHP 开发团队的成员。我们有自己的开发和生产服务器,因为它们都在本地网络上,而且我们正在 运行 严格在本地开发应用程序而不是 public,我们在开发服务器上开发并且没有本地环境。我们每个人都将源代码存储在本地磁盘上,但我们设置了 IDE 以立即自动将所有更改同步到 DEV 服务器(基本上在每次保存后)。
从历史上看,这是非常有益的,因为每个开发人员都有自己的项目,而更多开发人员在一个项目上的协作几乎从未发生过。但现在我们的团队越来越大,我们正在处理一些变化。最主要的是我们需要某种版本控制系统。 Git 更准确地说。
有什么方法可以为此设置实施某种 git 工作流程吗?我的意思是,安装 Git 非常简单,但我们希望享受例如将 git 集成到 IDE 并能够查看谁做了什么、何时等。现在我们在不完全改变工作流程的情况下所能做的就是在 DEV 服务器上安装 git 和直接在那里提交。但这意味着每个人都将在本地处理代码,代码将同步到服务器,他需要在那里连接并提交。这对我来说似乎是错误的..
您能找到一种无需在我们的机器上设置本地环境即可实现 git 的方法吗?
让每个开发人员在其本地 git 存储库上工作,并与中央存储库同步。
当开发人员认为他的更改已准备就绪时,他可以简单地推送他的提交。
或者,推送是快进的,然后一切正常,更改会自动应用。
或者,推送是非快进的。当其他开发人员介入并可能发生冲突时,就会出现这种情况。因此,开发人员必须提取其他更改并合并他的提交,可能会解决冲突。
Git 既没有引入冲突,也没有规避冲突(尽管有些人认为是这样)。 Git 只是帮助您注意 和管理 这些冲突。
到目前为止,您是如何处理冲突的?例如,两个开发人员更改同一个文件中的一行?
避免冲突完全取决于您团队的组织。
您还可以设置 post-receive hook 以便中央存储库在推送新提交时自动更新 Web 服务器的文件(尽管第一个 运行 自动化测试显然更可取) .
编辑
恕我直言,您的开发策略既不适合中型团队也不适合中型软件项目。
团队越大,同时处理代码的人就越多。如果两个开发人员更改同一个文件怎么办?如果 Dev1 保存了他的工作,Dev2 的工作是否会因为他没有保存他的文件而被覆盖?如果 Dev2 保存他的文件,他会覆盖 Dev1 的工作吗?
软件项目越大,您就越有可能需要同时更改多个文件(例如更改函数的签名)。所以如果你更改了第一个文件,现在整个软件都坏了,你自动将这个坏掉的软件部署到你的服务器上!
我是一家大公司内的一个小型 PHP 开发团队的成员。我们有自己的开发和生产服务器,因为它们都在本地网络上,而且我们正在 运行 严格在本地开发应用程序而不是 public,我们在开发服务器上开发并且没有本地环境。我们每个人都将源代码存储在本地磁盘上,但我们设置了 IDE 以立即自动将所有更改同步到 DEV 服务器(基本上在每次保存后)。
从历史上看,这是非常有益的,因为每个开发人员都有自己的项目,而更多开发人员在一个项目上的协作几乎从未发生过。但现在我们的团队越来越大,我们正在处理一些变化。最主要的是我们需要某种版本控制系统。 Git 更准确地说。
有什么方法可以为此设置实施某种 git 工作流程吗?我的意思是,安装 Git 非常简单,但我们希望享受例如将 git 集成到 IDE 并能够查看谁做了什么、何时等。现在我们在不完全改变工作流程的情况下所能做的就是在 DEV 服务器上安装 git 和直接在那里提交。但这意味着每个人都将在本地处理代码,代码将同步到服务器,他需要在那里连接并提交。这对我来说似乎是错误的..
您能找到一种无需在我们的机器上设置本地环境即可实现 git 的方法吗?
让每个开发人员在其本地 git 存储库上工作,并与中央存储库同步。
当开发人员认为他的更改已准备就绪时,他可以简单地推送他的提交。
或者,推送是快进的,然后一切正常,更改会自动应用。
或者,推送是非快进的。当其他开发人员介入并可能发生冲突时,就会出现这种情况。因此,开发人员必须提取其他更改并合并他的提交,可能会解决冲突。
Git 既没有引入冲突,也没有规避冲突(尽管有些人认为是这样)。 Git 只是帮助您注意 和管理 这些冲突。 到目前为止,您是如何处理冲突的?例如,两个开发人员更改同一个文件中的一行? 避免冲突完全取决于您团队的组织。
您还可以设置 post-receive hook 以便中央存储库在推送新提交时自动更新 Web 服务器的文件(尽管第一个 运行 自动化测试显然更可取) .
编辑
恕我直言,您的开发策略既不适合中型团队也不适合中型软件项目。
团队越大,同时处理代码的人就越多。如果两个开发人员更改同一个文件怎么办?如果 Dev1 保存了他的工作,Dev2 的工作是否会因为他没有保存他的文件而被覆盖?如果 Dev2 保存他的文件,他会覆盖 Dev1 的工作吗?
软件项目越大,您就越有可能需要同时更改多个文件(例如更改函数的签名)。所以如果你更改了第一个文件,现在整个软件都坏了,你自动将这个坏掉的软件部署到你的服务器上!