如何取消对特定文件夹所做的更改?
我已修改了来自多个文件夹的文件,例如:
app/code/core/
app/code/local/
app/design/frontend/
我想撤销所有 app/code/core/
中文件所做的更改,同时保留 app/code/local/
和 app/design/frontend/
文件中所做的更改。如何取消对特定文件夹所做的更改?
我已修改了来自多个文件夹的文件,例如:
app/code/core/
app/code/local/
app/design/frontend/
我想撤销所有 app/code/core/
中文件所做的更改,同时保留 app/code/local/
和 app/design/frontend/
文件中所做的更改。git checkout app/code/core/
。git checkout -f
强制检出。 - Aziriscd app/code/core/
git clean -fd
注意:你也可以使用 git clean -fdn
进行干运行,查看这些命令将会删除哪些文件。
git checkout --no-overlay -- <directory>
将目录重置为特定提交的状态:
git checkout --no-overlay <commit> -- <directory>
rm -rf <directory>
git checkout -- <directory>
rm -rf <directory>
git checkout <commit> -- <directory>
git checkout <directory>
是一个糟糕的答案。在简单情况下,它会做正确的事情,在复杂情况下,它会做错误的事情,但表面上看起来是有效的。这是因为git是根据文件而不是目录进行推理的,在checkout的情况下,git只会更新已经存在于被检出代码中的文件。因此,您需要使用--no-overlay标志(2.22+)或者首先删除该目录中的所有文件。git restore folder-with-changes/*
。git clean -fxd folder-with-changes/
结合使用,以清理新的、之前未提交的文件。 - Martin_W对我来说,git checkout -f
就解决了问题,git checkout
只是列出更改而不应用它们。
git checkout
没有起作用的原因是你需要指定一个目录。例如(对于当前目录及其所有子目录):git checkout .
- Kevin Meboe