【问题标题】:Setting-up local git repository设置本地 git 存储库
【发布时间】:2013-11-19 08:06:27
【问题描述】:

我喜欢使用GitHub 作为我的项目文件存储库。但如果我能够在这台计算机上的不同目录路径上创建存储库,我会更感兴趣。然后在我的新工作目录上克隆该创建存储库。

我打算在 本地 制作GitHub。我一直在寻找这个和许多我应该使用gitolite 和更多的回报。我使用 Windows 的问题,我想使用命令行完成所有步骤。

我应该输入什么命令行来在工作目录以外的不同目录上创建存储库,并能够将该存储库克隆到本地网络中的其他终端。


链接终端到 Windows 主机

我创建了一个指向Users\username\GIT\project.git 的存储库目录。 我正在尝试使用命令行git clone file://{IPv4 server address}/Users/username/GIT/project.git 链接我的终端返回

fatal: '/{IPv4 server address}/Users/username/GIT/project.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我该如何解决这个问题?我的主机在 Windows 7 上运行,我的连接终端将使用 Ubuntu 12.04 LTS 和 MacOS Mavericks。


更新跟踪

  1. 更新了我的问题正文。我不知道我应该遵循哪些步骤。
  2. 插入了LINKING TERMINAL to Windows Host问题,以通过本地网络共享存储库。

【问题讨论】:

  • 我建议你直接用 gitolite 代替。您可能还会遇到 ssh 密钥和权限问题。
  • @asifrc 如果服务器是 Windows 是否适用?
  • 大声笑不.. 我正要问。是的,在 Windows 上开发有时会很糟糕(我正在用 Windows 8 折磨自己:/)我目前正在研究 Windows 解决方案,我会告诉你我发现了什么:)
  • 您查看过bonobogitserver.com 吗?看起来很有希望.. (github repo)

标签: git ssh git-clone git-remote


【解决方案1】:

也许你问的是创建 git repo 和本地克隆的简单方法?

  1. 使用git init --bare创建git repo
  2. 使用git clone --local /path/your/local/repo/从其他地方克隆

对于本地网络,windows 共享或其他文件共享可能有效。

但是,简单的方法只是工作,不是最好或合适的方法。 GitHub 上没有拉取请求、问题跟踪、权限控制功能。 对于管理 git commit 或其他复杂的工作,你需要一个管理系统, 如gitolite、gerrit,有些可能无法在windows系统上运行。

如果你只需要一个免费的私人仓库,你可以使用 bitbucket。

从 Windows 共享克隆:

git clone file:////{IPv4 server address}/share_name/path_to_your_.git_dir

在主机上,您必须使用 'share_name' 共享 repo 目录,例如:repo.git 的父目录

见:

【讨论】:

  • 恰到好处。然而,我不能像其他任何答案一样关注 Windows 共享。无论如何,(我知道这似乎是题外话)基于 bitbucket 或 GitHub 的本地 git 管理(JIRA 等)?
  • 看来你对git不是很熟悉,所以不建议你搭建JIRA之类的本地git管理系统。纯 git 可以创建本地 repo 并在本地执行 pull/commit/push,windows 共享(与驱动程序号链接,例如 g:\some\dir)将与您自己的计算机一样工作。如果你了解更多关于 git 的知识,这将更容易选择。
  • 如果你对git知之甚少(尤其是windows平台),管理一个本地的git repo可能会在以后给你带来更多的问题,所以现在使用在线私人git服务可能是你的正确选择。跨度>
【解决方案2】:

如果我正确阅读了您的问题陈述,您可以像这样使用克隆命令上的--local 开关将本地 git 存储库克隆到另一个文件夹中

git clone --local /git/source_repo/project /home/username/workdir/project

在哪里

/git/source_repo/project 是 repo 的安全副本(如果您愿意,可以将其称为您的个人 GitHub)。

/home/username/workdir/project 是您的工作文件夹。它可以是您想要频繁提交的任何文件夹

开关解释:

--本地

当要克隆的存储库位于本地计算机上时,此标志会绕过正常的“git 感知”传输机制,并通过复制 HEAD 以及 objects 和 refs 目录下的所有内容来克隆存储库。 .git/objects/ 目录下的文件被硬链接以尽可能节省空间。

如果存储库被指定为本地路径(例如,/path/to/repo),这是默认值,--local 本质上是一个无操作。如果将存储库指定为 URL,则忽略此标志(并且我们从不使用本地优化)。指定 --no-local 将在 /path/to/repo 给出时覆盖默认值,而使用常规的 git 传输。

要强制复制而不是硬链接(如果您尝试备份存储库,这可能是可取的),但仍避免通常的“git 感知”传输机制,可以使用 --no-hardlinks。

--无硬链接

通过复制 .git/objects 目录下的文件来优化从本地文件系统上的存储库克隆过程。

查看documentation了解更多详情

更新 1

要在 Windows 上设置 Git 服务器,您可以试试这个名为 GitStackcommercial(开源)软件。

有用的 GitStack 资源:

  1. GitStack Installation Instructions
  2. 链接到GitStack on Github的源代码

【讨论】:

  • 如果您对源和目标都使用完整路径,那么执行命令的位置无关紧要。我在上面的答案中添加了更多描述。
  • 好的。但是如何通过 SSH 或其他协议将我的终端链接到创建的存储库。
  • 哪些终端?你的意思是从其他机器?如果要架设git服务器,最好使用非wi​​ndows平台。并不是说它不能在 windows 上完成,而是 windowsgit 的支持几乎是事后才想到的(请记住,Linus Torvalds 是 Git 和 Linux 的创建者)。不值得努力。如果您仍然感兴趣,请在 Google 上搜索 msysgitvisit this
  • 即使我将非 Windows 虚拟环境作为本地网络的 git 服务器?
  • 可以的。您可以使用vagrant box 来托管您的git 服务器,并使其可供网络上的其他计算机访问。您也可以尝试Bitnami Stack for GitLab 在本地局域网上获得类似github 的体验
【解决方案3】:

要创建一个本地裸仓库,命令其实很简单:

git clone --bare my_project my_project.git
Initialized empty Git repository in /my/projects/my_project.git/

只要您在本地使用这些(例如,从 USB 连接的存储设备或其他东西),这就是它的全部内容。您只需将命令指向该存储库,即可进行克隆、推送、拉取等操作。不过,有人可能会问您为什么要做这样的事情。

这些说明用于在服务器上进行设置,但我发现这些说明对于创建本地存储库也很有帮助:http://git-scm.com/book/en/Git-on-the-Server-Getting-Git-on-a-Server

【讨论】:

  • 很抱歉造成混淆,它将来自您的 repo 工作副本所在的父级。所以,如果我有/projects/myproject,并且我想创建一个“官方”裸存储库,我会cd /projects,然后输入git clone --bare myproject /location/for/bare/myproject.git。 Git 将在第一个参数中指定的目录中查找.git 目录。
  • 太好了,如何将我的终端链接到创建的存储库?
  • @Dr.Java - 要从另一台机器克隆,您需要确保其他用户在您的机器上有一个用户帐户,并且已设置 ssh,并且该用户已启用 ssh .然后他们可以执行一个普通的 git clone 命令,指向你创建的裸仓库。使用上面的例子,像这样:git clone {the_user}@{your-ip-address}:/location/for/bare/myproject.git
  • 如果我理解正确,我需要在我的 Windows GIT 主机上设置/创建一个用户帐户以匹配我的终端要使用的用户帐户吗?我是否还需要配置 SSH 才能使其正常工作(尤其是在服务器端)?
  • 对于这种工作方法,是的(据我了解 Git)。 HTTP 方法需要设置 git-daemon,我相信,我不确定它是否适用于 Windows。您可能还必须为此设置 Cygwin。或者,您可以将您的存储库放在网络共享驱动器上,正如此消息来源所建议的那样:elegantcode.com/2011/06/18/…
猜你喜欢
  • 1970-01-01
  • 2021-01-25
  • 2023-03-20
  • 2013-10-09
  • 2017-12-31
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多