繁体   English   中英

如何从另一个Git仓库获取具有不同名称的子目录内容

[英]How to get a sub-directory contents with a different name from another Git repo

从另一个具有相同名称和相同路径的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项目是一个包含一系列笔记的公共资源,我只是在多个项目中将其简化为克隆,以用作执行需求分析和体系结构设计的模板。 这些独立项目不需要跟踪software-construction-notes项目的历史,我真的只需要文件的最新快照。

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

可能已经有效了。

它读取清单/主树并将其放入索引中,但在某个目录中。 之后的checkout命令只是从索引更新您的工作目录,并基本上还原我/ specs / dir / checklists中新的“待删除”文件。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM