如何在没有工作目录的情况下创建git repo?

如何在没有工作目录的情况下创建git repo?,git,git-clone,git-bare,git-worktree,Git,Git Clone,Git Bare,Git Worktree,我使用git工作树的概念来创建多个工作目录。每个功能和/或缺陷修复各一个。 因此,我将创建一次存储库的git克隆,然后根据需要开始创建工作树 当我克隆git存储库时,默认情况下会签出一个工作目录-主工作树。我们不使用,不必要地占用空间。因此,我正在寻找一种方法来创建一个git repo,并在开始时签出一个工作目录 我尝试了git克隆--bare./test git 它实际上创建了一个没有工作目录的git repo,但我无法从中创建git工作树。我经常抛出以下错误- bash-4.4 [/user

我使用git工作树的概念来创建多个工作目录。每个功能和/或缺陷修复各一个。 因此,我将创建一次存储库的git克隆,然后根据需要开始创建工作树

当我克隆git存储库时,默认情况下会签出一个工作目录-主工作树。我们不使用,不必要地占用空间。因此,我正在寻找一种方法来创建一个git repo,并在开始时签出一个工作目录

我尝试了
git克隆--bare./test git

它实际上创建了一个没有工作目录的git repo,但我无法从中创建git工作树。我经常抛出以下错误-

bash-4.4 [/user/darshan/test-git] $git worktree add -b test-git-worktree.repo ../test-git-worktree origin/repo
Preparing worktree (new branch 'test-git-worktree.repo')
fatal: Not a valid object name: 'origin/repo'.
  • 我做错了什么
  • 我进入了从
    git clone bare
    命令创建的
    .git
    目录,发现
    索引
    文件和
    lfs
    目录丢失。 这两项将出现在从完整git克隆创建的
    .git
    目录中

  • 这两项表示什么
  • 在运行哪个git命令时,我将获得这些项目

  • 我们可以使用-

    git clone -n <url>
    
    git克隆-n
    
    这只是创建了一个目录(具有存储库名称),其中包含
    .git
    目录


    注意:此外,我希望使用git clone--bare也能提供类似的功能。但是我们还没有弄清楚这一点。

    我们可以使用-

    git clone -n <url>
    
    git克隆-n
    
    这只是创建了一个目录(具有存储库名称),其中包含
    .git
    目录


    注意:此外,我希望使用git clone--bare也能提供类似的功能。但是我还没有弄明白。

    我正在查看来自
    git worktree
    的帮助,这就是我在
    git worktree add
    中看到的:
    git worktree add[][
    。所以你应该有路和树。。。。但你有三个情人。我想知道你对他们是什么意思。还有。。。。我不是在抱怨你的工作流程。。。。这在技术上是可能的。。。。但是为什么要为每个特性/bug创建一个工作树呢?听起来像是试图用原子弹放焰火。这通常是使用单个工作树上的单独分支执行的。。。。我个人经常使用这种设置。但在我的用例中,我只是从一个普通的git回购协议中创建一个游乐场工作树,而不是从一个像OP这样的裸git回购协议中创建。原因很简单,我喜欢在游乐场工作树中乱成一团,如果我的老板突然进来让我做一个紧急的错误修复,我不必先清理游乐场,然后再查看主控。我刚打开另一个文件夹,这就是为什么。@eftshift 0所以我使用的命令的格式是-
    git worktree add-b
    这种格式与git网站中的格式非常相似-
    $git worktree add--track-b/
    事实上,当我使用完整的git clone命令时,我正在使用的命令是有效的。@eftshift 0我使用此工作流的原因is-我们可以同时继续处理多个bug修复和功能。比方说,您必须运行一些需要几个小时才能完成的测试套件,或者您触发一个再次需要很长时间的构建。因此,使用worktree,您可以同时继续处理另一个问题。这是worktree inception afaik的基本用例。我正在查看来自
    git worktree
    的帮助,这是我在
    git worktree add
    中看到的:
    git worktree add[][]
    。所以你应该有路和树。。。。但你有三个情人。我想知道你对他们是什么意思。还有。。。。我不是在抱怨你的工作流程。。。。这在技术上是可能的。。。。但是为什么要为每个特性/bug创建一个工作树呢?听起来像是试图用原子弹放焰火。这通常是使用单个工作树上的单独分支执行的。。。。我个人经常使用这种设置。但在我的用例中,我只是从一个普通的git回购协议中创建一个游乐场工作树,而不是从一个像OP这样的裸git回购协议中创建。原因很简单,我喜欢在游乐场工作树中乱成一团,如果我的老板突然进来让我做一个紧急的错误修复,我不必先清理游乐场,然后再查看主控。我刚打开另一个文件夹,这就是为什么。@eftshift 0所以我使用的命令的格式是-
    git worktree add-b
    这种格式与git网站中的格式非常相似-
    $git worktree add--track-b/
    事实上,当我使用完整的git clone命令时,我正在使用的命令是有效的。@eftshift 0我使用此工作流的原因is-我们可以同时继续处理多个bug修复和功能。比方说,您必须运行一些需要几个小时才能完成的测试套件,或者您触发一个再次需要很长时间的构建。因此,使用worktree,您可以同时继续处理另一个问题。这是worktree inception afaik的基本用例。