[英]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.