繁体   English   中英

在www.hostingcompany.com/~/mysite.com上维护源代码的Git策略是什么?

[英]What is a good Git strategy for maintaining source code on www.hostingcompany.com/~/mysite.com?

这与无法git克隆服务器上的文件夹,然后编辑和git push有关?

所以我们假设托管公司是www.hostingcompany.com

当我ssh到它,我在~我会看到

~/mysite.com
~/any_other_folders

什么是一个很好的Git工作流程来控制~/mysite.com所有源代码,并且能够git clone到我的本地PC? 这样我就可以在本地进行修改,然后发出一行并推送到repo并让~/mysite.com上的所有代码都是最新的?

是使用git repo,然后sftp从本地PC到~/mysite.com一个好方法? 我不喜欢这样做,因为很难看出是否所有内容都是同步的。

直接从你已经得到它的相关问题中复制答案:

您有两种选择:

  1. 制作一个裸存储库( mysite.com.git )和一个非裸存储库( mysite.com )。 在裸存储库中,将post-update挂钩添加到git --git-dir=.../mysite.com pull

    请注意,您可能希望通过使用-s标志从裸网络克隆创建非裸存储库,或者之后设置.git/objects/info/alternates以避免复制所有数据。

  2. 只创建一个存储库并:

    1. 脱头: git checkout master@{0}

    2. 添加post-update挂钩到git merge master

    这里的原因是git拒绝修改签出分支,但是如果你取消选中分支,你就可以推送。 并且您将能够从钩子更新工作目录(钩子是放置在存储库中的hooks目录中的脚本)。 您可以创建一个单独的分支并检查它,或者您可以使用“分离的HEAD”状态(如上所述 - git通过具有指向分支的特殊引用“HEAD”来记住检出哪个分支,但是如果你检查了一些东西,这不是一个分支,它被直接指向一个修订版,它被称为“分离的分支”,因为没有分支被检出,允许你推送到其中任何一个)。

  3. 只创建一个存储库并:

    1. 关闭推出检查分支检查。

    2. 添加post-update挂钩到git reset --hard以便在推送时重新检出分支。

    此选项仅对只读访问有效,因为每次推送时挂钩都会丢弃任何本地更改。

如果它只是检查并以只读方式访问,第二个选项稍微更有效,但如果你在工作目录上运行其他命令,第一个更安全(你可以擦除并重新创建工作副本而不用担心关于主要的回购)。 另见这个问题

编辑:添加第三个选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM