gpt4 book ai didi

git - 如何从另一个 Git 存储库中获取具有不同名称的子目录内容

转载 作者:太空狗 更新时间:2023-10-29 14:19:09 25 4
gpt4 key购买 nike

从另一个具有相同名称和相同相对路径的 Git 存储库获取子目录很容易,例如:

git remote add checklists https://github.com/janosgyerik/software-construction-notes
git fetch checklists
git checkout checklists/master checklists

示例远程存储库在其根目录中有一个名为 checklists 的目录。最后一个 checkout 命令将抓取该目录的内容并将其放入本地存储库的根目录中。

但是如果我想把目录放在别的地方呢?当然,在 checkout 之后,我可以使用 git mv checklists my/specs/dir/checklists 将目录移动到我想要的任何位置。但是,如果我在本地项目中已经有一个具有相同名称(并且可能具有不同用途)的目录,这可能会很麻烦。我首先必须将目录移开。有没有一种更清洁的方法可以一步完成?像这样:

# grab the "checklists" dir and put its contents to my/specs/dir/checklists
git checkout checklists/master checklists my/specs/dir/checklists

顺便说一句,本地存储库是一个完全独立的项目。 software-construction-notes 项目是一个带有一系列笔记的公共(public)资源,我只是在多个项目中像这样浅克隆,以用作进行需求分析和架构设计的模板.这些独立的项目不需要跟踪 software-construction-notes 项目的历史,我真的只需要文件的最新快照。

最佳答案

git read-tree --prefix=my/specs/dir checklists/master
git checkout-index -a

可能已经工作了。

它读取 checklists/master 树并将其放入索引中,但在特定目录中。之后的 checkout 命令只是根据索引更新您的工作目录,并基本上恢复 my/specs/dir/checklists 中新的“待删除”文件。

如果你通常同意 git 会做什么,你可以通过以下方式组合这两个命令

git read-tree -u --prefix=my/specs/dir checklists/master

关于git - 如何从另一个 Git 存储库中获取具有不同名称的子目录内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25803288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com