2017-06-06 80 views
1

我无法在任何地方找到答案。是否有可能为Web服务器上的文件设置本地git存储库?由于空间不足,我不想将回购站放在网络服务器上。远程目录的Git本地存储库

+0

这些文件在任何git仓库中? – 5208760

+0

你能澄清你的要求吗?你在网络服务器上有一些文件,你想下载到你的机器上......没关系。然后你可以创建一个Git仓库中的文件。你还想做什么? – bdesham

+0

@bdesham我不想下载这些文件。我想知道,如果Git有一个命令,它将获得服务器的文件,然后添加它们。即它会自行下载。 –

回答

0

听起来你想要一个本地存储的回购站,但是你希望它的工作树与你的Web服务器提供的内容树一致。

没有这个原生支持,但如果你可以映射底层驱动器/目录包含内容树为本地路径(即把它当作一个网络共享驱动器),那么你可以把它与git worktree

工作

将服务器设置为共享内容目录并在本地映射该共享的详细信息取决于操作系统(也可能在Web守护程序及其设置方式上,尽管如果它只是从本地内容目录提供文件,它不应该是一个问题)。

请注意,当你添加一个工作树时,git希望看到一个空目录来签出。因此,您需要一个简短的“停机窗口”,在此期间内容树可以为空。该过程可能看起来像这样

# First, map the content tree to ./web-content 
# ... 

# Now initialize a repo 
mkdir repo-init 
cd repo-init 
git init 

# Import the web content into the repo; must be in outage window 
mv ../web-content/* . 
git add . 
git commit 

# Re-make the repo as a "mirror" to remove the default work tree 
cd .. 
git clone --mirror repo-init repo 
rm -rf repo-init 
cd repo 
git remote remove origin 

# Now check the content back out to the server 
git worktree add ../web-content master 

# outage window can now end 

您现在有一个本地存储库,用于跟踪Web服务器上的文件。如果您希望能够(或推)更新服务器,则必须进行适当的配置(如果回购站位于服务器上)。

0

绝对是的。最简单的方法是在本地保存资源库,并使用ftp/rsync远程放置代码(仅工作目录)。而已。你的主人不需要你的回购。