有没有办法让git存储库在pull / clone之前提交一个目录?

时间:2015-06-05 14:26:29

标签: git githooks

对不起,如果我完全错了或者其他什么,我对Git很新,我正在努力为我的工作(网站开发/托管)写一个方法来实现它。这里的每个人都在这里待了15年,他们真的没有改变他们做任何事情的方式。最近一位同事和我一直试图把事情搞得一团糟,我想我们真的会真的受益于使用git。问题是每个人都反对改变,所以我必须让它变得容易......

通过一个小小的谷歌搜索,我发现了一种方式(http://toroid.org/ams/git-website-howto)看起来几乎可以正常工作而不会弄乱每个机构的工作流程,但它存在问题。

现在设置为
网站repos在本地网络驱动器上W:\Git\(可能稍后在服务器根目录上?)
以及通过VPN运行Windows的服务器上的网站\\172.16.xxx.xxx\data_www

这样可以正常工作(除了有点慢)但看起来如果有人对实际网站文件进行了更改,那么我们就会丢失它们。

我的想法是拒绝推送,如果推送存储库正在提交并拦截git pull / git clone并在继续执行pull / clone之前自动提交网站文件夹的内容。通过这种方式,人们仍然可以进行更改,但我们不会意外丢失任何数据...但我没有看到任何可以使用git commit -m "Add live site changes"的钩子,看起来它们可能会起作用而且我有点难过。

我喜欢发送一封说

的电子邮件的概念

更改网站

在命令行中运行git clone W:\Git\Domain.tld.git C:\Git
C:\Git\Domain.tld
对网站进行任何更改 使用git commit -m "Description"保存更改 使用git push

更新实时网站

有没有正确的方法呢?如果没有,还有其他任何方法可以让人们不必过多地改变他们的工作流程吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

关于如何让git做你想做的事,这里可能有一个技术性的答案,但与此同时,让我们忘记这一点,并找出问题的根本原因。

人们不应该在通常的开发工作流程之外对生产站点进行未经测试的,未经测试的更改。

(相关:请参阅gitflow了解使用git的方法,除其他外,提供了使用修补程序修补生产的方法)

你遇到的问题是这种做事方式在你发现自己工作的组织中已经流行了很长时间。足够长的变化抵抗可能会阻止你到达任何地方。

我认为你有两种选择。寻找另一份工作或试着说服他们改变。

后者很难,但并非不可能。如果可以的话,可以找到他们当前实践在哪里为客户造成真正问题的示例,或者可能打破了导致业务损失的销售演示。确保负责制定决策的人员了解不良开发实践与负面后果之间的联系。解释另一种工作方式如何防止这种情况发生,并且可以直接实施。