git checkout删除目录
问题描述:
我想知道如何能够立即恢复目录中的所有文件whit git checkout?git checkout删除目录
您可以使用目录路径,以将其添加或删除所有文件了,就象
git add /path/to/dir/
但是当我做
git checkout /path/to/dir/
我得到这样的
error: pathspec '/path/to/dir/' did not match any file(s) known to git.
所以我必须手动添加每个文件,有没有更简单的方法?
答
我认为你需要确定分支
git checkout master
或git checkout <treeish> -- /path/to/dir
更多信息: http://gitready.com/intermediate/2009/03/18/restoring-a-directory-from-history.html`
答
显然你可以做到这一点:watch here for an example。 命令
git checkout <treeish> -- /path/to/dir
应该工作。在你的情况下,你不指定一个分支,它应该将目录的状态恢复到最后的提交。
也许你忘记了git checkout命令后的--
。
(我甚至不知道,它可以在不--
时不处理分支使用)
我想你需要澄清你的意思是“恢复目录中的所有文件”。你的意思是“放弃对该目录中文件的所有未提交的更改”?另外请注意,你不应该在'git checkout'中使用绝对路径 - 它应该是'path/to/dir'而不是'/ path/to/dir',路径相对于你当前的目录。 –
它可能是绝对路径吗?我假设'git checkout'与相对于工作树的路径一起工作。 (例如,工作树中的'git checkout path/to/dir') – Boldewyn
@Boldewyn:如果你使用绝对路径,即'fatal:'/ path/to/dir'在仓库之外,你会得到一个不同的错误如果路径导致存储库中的目录。我怀疑这是一个不正确的相对路径问题.... –