如何在没有工作目录的情况下创建git repo?
我使用git工作树的概念来创建多个工作目录。每个功能和/或缺陷修复各一个。 因此,我将创建一次存储库的git克隆,然后根据需要开始创建工作树 当我克隆git存储库时,默认情况下会签出一个工作目录-主工作树。我们不使用,不必要地占用空间。因此,我正在寻找一种方法来创建一个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克隆--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 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的基本用例。