【问题标题】:Push Git Project to Local Directory将 Git 项目推送到本地目录
【发布时间】:2011-10-22 00:45:49
【问题描述】:

不知道 Git 是否完全支持这将是非常好的,因为它可以让事情变得更容易,基本上我有一个项目正在文件夹 X 中进行,当我将它进行到特定阶段时,我想再次将其推送到我计算机上的文件夹 Y。

如果这可能很棒,那么更好的是是否可以使用 GitHub for Mac 或 Tower for Mac。

【问题讨论】:

  • 是否有一个分支不够用的原因?我认为当您处于“特定阶段”时,您会创建一个分支,编辑然后合并该分支。我想我对同一台机器上的不同文件夹和实际上相同的 repo 有点困惑。
  • 单独文件夹的原因是我想将我的项目的开发和测试环境分开。另一个文件夹也是我的网络服务器运行的地方。

标签: git github


【解决方案1】:

这绝对有可能——您可能想要做的是在文件夹 Y (git init --bare) 中创建一个“裸”git 存储库,然后将该文件位置添加为远程:

git remote add Y file:///path/to/Y

我认为 Mac 版 GitHub 或 Mac 版 Tower 会像处理任何其他遥控器一样处理这个问题。

【讨论】:

  • 有一个警告。无论您在哪里创建存储库git 都需要能够锁定。远程挂载点并不总是可行的。
  • 我不明白file:///path/to/Y 指的是什么。您是否只需将file:///path/to/Y 替换为您希望成为存储库的目录的完全限定路径? (我尝试用 `C:\Users\exampleremote` 替换它,它似乎可以工作)。
  • @cprn 你说git needs to be able to lock是什么意思?另外,remote mount points,您指的是网络上的主机吗? (我有兴趣在 LAN 网络上的主机(专用电脑)上设置远程仓库)。
  • @MinhTran 我认为也可以使用绝对 Windows 路径(手头没有 Windows 系统来检查)。
  • @MinhTran 某些文件系统不允许文件锁定——这是 git 所做的,以确保没有两个 git 实例会同时修改同一个存储库,从而覆盖彼此的更改并可能破坏它。在 *nix 系统中,将资源附加到树上称为mounting。您可以附加本地或远程位置并使用路径定位它,这包括 LAN 上的资源,但您必须确保远程资源使用允许锁定的文件系统(有些只允许在本地锁定,有些允许远程锁定,有些不允许)根本不允许锁定)。
【解决方案2】:

我假设您想要推送到 Y,以便您可以在其他地方拥有一个“以前好的”更改的签出文件夹。 @dahlbyk 的回答暗示了一个裸仓库。如果你这样做,你可以(并且可能应该)宁愿在同一个 repo 中有一个分支。

除此之外,只需将 X 中的 git repo 克隆到 Y(非裸)中,然后从 Y 中克隆 git pull 或从 X 中设置像 @dahlbyk 这样的远程并推送到 Y。确保将 receive.denyCurrentBranch 设置为false 或与您正在推送的分支不同的分支已在 Y 中签出

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    • 1970-01-01
    • 2014-12-02
    • 2012-12-20
    • 1970-01-01
    • 2020-03-11
    • 2018-06-30
    相关资源
    最近更新 更多