很抱歉问这个愚蠢的问题。
我正在尝试将我的仓库(本地)复制到另一个本地目录中。如果仅执行仓库的CMD + c
和CMD + v
,实际上就是复制本地仓库的所有分支。如何只复制一个分支?
谢谢
答案 0 :(得分:1)
每个git存储库都包含整个git提交树,因此您无法通过复制和粘贴git文件夹获得仅具有单个分支的git存储库。
但是git worktree
专为这种情况而设计。
只需在原始git存储库中键入此命令即可。
git worktree add -b <your-new-branch-name> <your-new-directory> <your-base-branch>
此命令意味着您将在路径your-new-directory
中创建一个新文件夹,然后基于your-new-branch-name
分支创建一个名为your-base-branch
的新分支。
例如,您可以在下面键入此内容,以在原始文件夹旁边创建一个名为MyAnotherFolder
的文件夹,并基于temp/my-copy
创建一个新分支master
。
git worktree add -b temp/my-copy ../MyAnotherFolder master
如果以后要删除该文件夹,请键入此命令以删除工作树引用。
git worktree prune
答案 1 :(得分:0)
您似乎要说的是第二个目录中的一个新存储库,其中仅包含一个分支。可以做到,尽管有点不寻常,但我想知道这是否真的是做您想做的事情的最佳方法...
无论如何,在大多数情况下,如果要复制存储库,最好使用git clone
而不是使用外部工具复制文件。在这种情况下,您可以说
git clone --single-branch --branch <branch_name> file://localhost/path/to/existing/repo
这将初始化一个新的存储库,并仅获取名为<branch_name>
的分支所需要的历史记录和对象。新的存储库将引用现有的本地存储库作为名为origin
的远程目录。如果需要,您可以通过cd
进入新的存储库并说
git remote remove origin
如果您的本地存储库有一个远程站点,并且您希望新的存储库也将那个远程站点用作其origin
,那么从远程站点而不是从远程站点克隆可能会更容易。本地副本。
答案 2 :(得分:0)
将存储库移至新服务器时,我遇到了同样的问题。
我只是从以前的仓库中提取信息
git push <path_to_new_local_repo> <branch_name>
,效果很好。