我有一个本地的Git存储库。我想让它在远程的、支持ssh的服务器上可用。我该怎么做呢?
发布于 2011-07-11 18:53:27
我认为您可以在远程端创建一个空存储库git init --bare,添加远程端作为本地存储库(git remote add origin URL)的推/拉跟踪器,然后在本地只需输入git push origin master即可。现在,任何其他存储库都可以从远程存储库执行pull操作。
发布于 2014-01-08 12:37:53
为了初始设置任何Git服务器,您必须将现有的存储库导出到一个新的裸存储库-一个不包含工作目录的存储库。这通常很简单。为了克隆您的存储库以创建一个新的裸存储库,您可以运行带有--bare选项的克隆命令。按照惯例,裸存储库目录以.git结尾,如下所示:
$ git clone --bare my_project my_project.git
Initialized empty Git repository in /opt/projects/my_project.git/此命令单独获取Git存储库,不包含工作目录,并专门为其创建一个目录。
现在您已经有了存储库的一个空副本,您所需要做的就是将其放在服务器上并设置您的协议。假设您已经设置了一个名为git.example.com的服务器,您可以通过SSH访问该服务器,并且希望在/opt/git目录下存储所有的Git存储库。您可以通过将裸存储库复制到以下位置来设置新存储库:
$ scp -r my_project.git user@git.example.com:/opt/git此时,对同一服务器具有SSH访问权限并对/opt/git目录具有读取访问权限的其他用户可以通过运行以下命令来克隆存储库
$ git clone user@git.example.com:/opt/git/my_project.git如果用户通过SSH连接到服务器并拥有对/opt/git/my_project.git目录的写访问权限,那么他们也将自动拥有推送访问权限。如果您运行带有--shared选项的Git init命令,git将自动正确地将组写权限添加到存储库。
$ ssh user@git.example.com
$ cd /opt/git/my_project.git
$ git init --bare --shared使用Git存储库、创建一个裸版本并将其放在您和您的合作者可以访问的服务器上是非常容易的。现在,您已准备好在同一项目上进行协作。
发布于 2012-11-28 08:12:25
对于在Windows上创建本地副本并希望在Unix行系统上创建相应的远程存储库的人,请注意,在类Unix系统上,文本文件在进一步的克隆上会得到LF结尾,但在Windows上会得到CRLF结尾。
如果你在setting up line-ending translation之前创建了你的Windows仓库,那么你就有问题了。Git的默认设置是无翻译,所以您的工作集使用CRLF,但是您的存储库(即存储在.git下的数据)也将文件保存为CRLF。
当您推送到遥控器时,保存的文件将按原样复制,不会发生行尾转换。(行结束转换是在文件提交到存储库时发生的,而不是在推送存储库时发生的)。您最终会在类Unix存储库中使用CRLF,这不是您想要的。
要将LF放入远程存储库中,您必须首先通过re-normalizing your Windows repository确保LF位于本地存储库中。这将不会对您的Windows工作集产生明显的影响,它仍然具有CRLF结尾,但是当您按下remote时,遥控器将正确地获得LF。
我不确定是否有一种简单的方法来判断你的Windows存储库中有哪些行结尾--我猜你可以通过设置core.autocrlf=false然后克隆来测试它(如果存储库有LF结尾,那么克隆也会有LF结尾)。
https://stackoverflow.com/questions/6648995
复制相似问题