如果我需要从家庭计算机上工作或其他任何方式访问我的文件,我是否需要有一个网络服务器并在那里签入文件?
如果我正在使用git
,我是否还需要一台服务器,或者我实际上是在他们的服务器上保存文件?
首先,Git是分布式版本控制系统.这意味着在使用Git时,您可以在工作中使用完整的存储库,并且还可以在家用计算机上复制完整存储库(称为克隆).您可以在家用计算机上工作,进行更改,阅读提交消息,查看差异,切换分支等,而无需在工作时对计算机进行持续的网络访问.
那么您的问题是如何在工作和家中同步存储库.有很多可能性:
您可以在某些可移动介质(如USB磁盘(pendrive))上创建裸存储库(即没有工作目录),克隆存储库.您将通过此存储库进行同步,从一个位置推送到它,并在其他位置从中取出(拉动).
您可以使用GitHub之类的Git托管服务之一,并使用它来同步您的存储库.您应该记住,通常免费计划需要公开您的存储库; 如果你想拥有私人存储库,你必须使用付费计划(付费服务).检查您要使用的网站提供的内容.
您可以使用git-bundle命令:使用"git bundle"命令在一侧生成bundle,然后使用bundle文件代替存储库URL,在另一侧使用clone/fetch/pull git fetch file.bndl
.您可以以任何方式传输捆绑包,无论是在USB闪存驱动器上,通过HTTP下载(普通网络服务器就足够了),FTP或SCP.
您可以通过SSH服务您的存储库.为此,您需要git在工作和家庭计算机上安装,服务器上的ssh守护程序(您从/推送到的一侧)和客户端上的ssh客户端.不需要为服务器上的所有用户全局安装Git; 你可以通过相关选项告诉git在哪里找到合适的git二进制文件(参见git文档).在Git Wiki的提示和技巧页面中,您会发现"如何通过ssh推送/拉入主机后面的主机?" 小费.
最后,您可以使用简单的Web服务器通过HTTP为您的存储库提供服务,就像您发布网页一样.您需要记住运行git update-server-info
以生成帮助程序信息.通常它是从post-update
钩子完成的(post-commit
如果存储库是非裸的,即如果你在其中创建提交); 查看示例挂钩(并阅读githooks文档)以了解它是如何完成的.
另请参阅我的答案如何使我的本地Git存储库可用于git-pull?所以问题.
Git存储库有许多托管解决方案,包括GitHub和Unfuddle.
您的问题的措辞表明您可能误解了Git(和一般的分布式版本控制系统)的全部内容.您可能想要阅读Unfuddle中的Git简介或者像这里的 Git简介.