Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从磁盘上删除文件,但保留Git clone目录;存档本地回购 用户故事_Git_Archive_Git Clone - Fatal编程技术网

从磁盘上删除文件,但保留Git clone目录;存档本地回购 用户故事

从磁盘上删除文件,但保留Git clone目录;存档本地回购 用户故事,git,archive,git-clone,Git,Archive,Git Clone,假设我克隆了一个项目并推动了我的工作,现在我已经完成了。我想我可能需要返回到它,所以我想在本地保留克隆以快速切换回来,但也有可能我做得很好,所以我想从磁盘转储文件 问题: 有可能这样做吗?为了“归档”本地repo,所以我只保留目录和.gitdir,而git在运行诸如git status之类的命令时理解这种状态 [编辑:]这个问题的主要原因是,我可以懒惰,不必在回去工作时找到要重新克隆的repo URL。这确实不是一个关键的需求,但它可能非常方便。我会用它来代替存档 这将创建一个文件,其中包含完整

假设我克隆了一个项目并推动了我的工作,现在我已经完成了。我想我可能需要返回到它,所以我想在本地保留克隆以快速切换回来,但也有可能我做得很好,所以我想从磁盘转储文件

问题: 有可能这样做吗?为了“归档”本地repo,所以我只保留目录和
.git
dir,而git在运行诸如
git status
之类的命令时理解这种状态


[编辑:]这个问题的主要原因是,我可以懒惰,不必在回去工作时找到要重新克隆的repo URL。这确实不是一个关键的需求,但它可能非常方便。

我会用它来代替存档

这将创建一个文件,其中包含完整的存储库历史记录:您可以轻松地将其备份到某个位置。
您可以从该文件中克隆回存储库

您可以制作一个脚本,该脚本将:

  • 创建一个包
  • 并生成第二个脚本,该脚本能够:
    • 克隆回那个包
    • 使用原始Git存储库“源”URL()更改远程URL
这样,您就有两个文件要备份:

  • Git存储库作为一个包
  • 从捆绑包中克隆后,能够克隆和恢复远程源URL的(生成的)脚本

我会选择归档,而不是归档

这将创建一个文件,其中包含完整的存储库历史记录:您可以轻松地将其备份到某个位置。
您可以从该文件中克隆回存储库

您可以制作一个脚本,该脚本将:

  • 创建一个包
  • 并生成第二个脚本,该脚本能够:
    • 克隆回那个包
    • 使用原始Git存储库“源”URL()更改远程URL
这样,您就有两个文件要备份:

  • Git存储库作为一个包
  • 从捆绑包中克隆后,能够克隆和恢复远程源URL的(生成的)脚本
    • 以下是一些选项:

    • (首选)删除文件夹并在需要时再次克隆。无论如何,当你重新开始工作时,你需要拉。存储过时的副本没有多大好处
    • 保持文件夹的原样
    • 如果要节省空间,请压缩文件夹 以下是一些选项:

    • (首选)删除文件夹并在需要时再次克隆。无论如何,当你重新开始工作时,你需要拉。存储过时的副本没有多大好处
    • 保持文件夹的原样
    • 如果要节省空间,请压缩文件夹
      tar/zip似乎是最好的解决方法:

      • 有效地从IDEs/search/grok中删除文件。磁盘不是一个真正的问题,但这是一个小得多
      • 不会丢失源URL,因此解压后,除了拉取任何更新外,无需重新开始工作


      这只是一个简单的解决方法。如果您想要的是更像备份的东西,特别是如果计划传输文件,请参阅。

      tar/zip似乎是最好的解决方法:

      • 有效地从IDEs/search/grok中删除文件。磁盘不是一个真正的问题,但这是一个小得多
      • 不会丢失源URL,因此解压后,除了拉取任何更新外,无需重新开始工作



      这只是一个简单的解决方法。如果您想要的是更像备份的东西,特别是如果计划传输文件,请参阅。

      您可以压缩/tgz/whateverz整个项目目录(使用git repo)并远程访问该目录。。。您可以稍后回来,然后将整个内容展开,就像什么都没有发生一样。如果以后需要,为什么不完全删除它并重新克隆它?@eftshift 0:这似乎是满足用户需求的最佳解决方法need@DanielMann:请参阅我添加的“”位。使用我的方法,您不必“查找要重新克隆的回购URL”您可以压缩/tgz/whateverz整个项目目录(使用git repo)并远程访问该目录。。。您可以稍后回来,然后将整个内容展开,就像什么都没有发生一样。如果以后需要,为什么不完全删除它并重新克隆它?@eftshift 0:这似乎是满足用户需求的最佳解决方法need@DanielMann:请参阅我添加的“”位。使用我的方法,您不必“查找要重新克隆的回购URL”这是tar文件中的裸回购还是类似的?@madpysicast不完全正确:它不会包含tar回购所包含的所有内容。@madpysicast通常情况下,本地钩子不会包含(,)@Rafe您选择了正确的答案。一旦从包中克隆回来,只需将源代码更改回您想要的任何远程URL:
      git remote set URL originhttps://new/url
      @Rafe gzip不建议使用,因为它需要太多特定于原始计算机的文件/可能包含敏感信息。最好让脚本能够读取远程URL(请参见[
      git remote get URL origin
      ]),并生成1/a bundle,2/a能够克隆该bundle的新脚本,要在克隆的repo中重置远程源,请将其重置为第一个脚本读取的URL。这样,您“就不必记住源URL”,按要求。这是tar文件中的裸回购还是类似的?@MadPhysician不完全是:它不会包含tar回购所包含的所有内容。@MadPhysician通常不会包含本地挂钩(,)@Rafe您选择了正确的答案。一旦从包中克隆回来,只需将源代码更改回您想要的任何远程URL:
      git remote set URL originhttps://new/url
      @Rafe gzip不推荐使用,因为它需要太多原始机器特有的文件/可能包含敏感信息。最好有一张纸条无法读取远程URL(请参见[
      git remote get URL origin