仅从git回购中提取一个目录

仅从git回购中提取一个目录,git,git-pull,git-checkout,git-fetch,Git,Git Pull,Git Checkout,Git Fetch,我有一份git回购协议,我想从中提取资金。我做了一次正常的git拉动,没有任何问题。问题是,我只希望回购协议中有一个特定目录。我的想法是,我可以使用一个.gitignore文件,并使用如下规则: #Ignore all files / #Except the one I want !/temp 问题是这不起作用。这是正确的方法还是有更好的方法?git pull获取并合并远程分支 .gitignore仅在本地起作用,并且将隐藏匹配的条目,使其不会显示在git status上,并使用git add

我有一份git回购协议,我想从中提取资金。我做了一次正常的
git拉动
,没有任何问题。问题是,我只希望回购协议中有一个特定目录。我的想法是,我可以使用一个
.gitignore
文件,并使用如下规则:

#Ignore all files
/
#Except the one I want
!/temp

问题是这不起作用。这是正确的方法还是有更好的方法?

git pull
获取并合并远程分支

.gitignore
仅在本地起作用,并且将隐藏匹配的条目,使其不会显示在
git status
上,并使用
git add
添加到索引中。这不是你想要的

您要做的是
fetch
远程分支,并从中提取所需的dir/文件

$ git fetch <remote> <branch>
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir
$git fetch
$git checkout/--relative/path/to/file/or/dir

文件/dir现在应该在您的分支中并添加到索引中

顺便说一句,要忽略所有文件,我选择
/*
只是为了记录:您不能只拉一个目录。您总是提取历史记录,而不是文件或目录。当然,你可以自由地只处理一些文件。可能的副本正是我所需要的。非常感谢你!第二行应该是
remove
还是
remote
?实际上,根据您的情况,此解决方案根本不起作用。假设在克隆本地存储库之后添加了in-first命令:任何本地分支都不会引用获取的提交(即使是像
/
这样的跟踪分支也不会引用)
git fetch
将引用存储在
fetch\u HEAD
中。此外,
git checkout
只会修改本地树和索引。之后,你将不知道所有这些文件来自何处。没问题!我要编辑自己,但没有先尝试命令!:D+1@Ninad:否,
git checkout
不保留历史,
git merge
保留历史。