我如何从当前工作树中删除未跟踪的本地文件 ?
当前回答
要删除完整更改git 清洁 -f -d
$ git clean -f -d
Removing client/app/helpers/base64.js
Removing files/
Removing package.json.bak
where
-f is force
-d is a directory
其他回答
要删除未跟踪的文件, 您应该首先使用命令查看将受到清理影响的文件
git clean -fdn
这将显示要删除的文件列表。 现在要实际删除那些使用此命令的文件 :
git clean -fd
git-清洁- 从工作树中移除未跟踪的文件
简要说明摘要
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
说明说明
通过递归式删除未在版本控制下的文件来清除工作树,从当前目录开始.
通常, 只有 Git 未知的文件才会被删除, 但是如果
-x
选项被指定,被忽略的文件也会被删除。例如,这可以用于删除所有构建产品。任何可选的或可选的
<path>...
给出了参数,只有这些路径受到影响。
步骤1是用-n
选项 :
# Print out the list of files and directories which will be removed (dry run)
git clean -n -d
清洁步骤 -注意: 这将删除文件:
# Delete the files from the repository
git clean -f
- 要删除目录,运行
git clean -f -d
或git clean -fd
- 要删除被忽略的文件,运行
git clean -f -X
或git clean -fX
- 要删除被忽略和未丢弃的文件,请运行
git clean -f -x
或git clean -fx
Note案件差别X
后两项命令。
如果(如果)clean.requireForce
设置为您的配置中的“ true”(默认),需要指定-f
否则不会真的发生任何事。
再次见git-clean
需要更多信息的医生。
选项选项选项
-f
,--force
如果 Git 配置变量为 clean. requireForce 不被设定为假, 除非给定, 否则 Git 配置变量为 clean.requireForce 将拒绝运行
-f
,-n
或-i
.
-x
不要使用标准忽略规则,
$GIT_DIR/info/exclude
,但是仍然使用-e
选项。这样可以删除所有未跟踪的文件, 包括构建产品。 这可以用来( 可能与 git 重设结合) 创建一个纯净的工作目录, 以测试一个干净的构建 。
-X
只删除被 Git 忽略的文件。 这也许有助于从零开始重建一切, 但保存手动创建的文件 。
-n
,--dry-run
不要删除任何东西, 只显示会做什么。
-d
除未跟踪的文件外,删除未跟踪的目录。如果一个未跟踪的目录由不同的 Git 仓库管理,则默认不会删除。使用
-f
如果您真的想要删除此目录, 选项将两次 。
git-清洁这是您正在寻找的。 它用于从工作树上移除未跟踪的文件 。
仅因为我追随工作:
git clean -ffdx
在所有其他情况下,我收到信息"绑架目录"用于某些子目录。
这可以用一个 shell 脚本来完成, 我用这个笔记本来列出要删除的内容, 然后让我确认操作 。
这是有用的,因为我有时有补丁 或其他文件,我想检查 之前擦走一切。
#!/bin/bash
readarray -t -d '' FILES < <(git ls-files -z --other --directory)
if [ "$FILES" = "" ]; then
echo "Nothing to clean!"
exit 0
fi
echo -e "Dirty files:\n"
printf ' %s\n' "${FILES[@]}"
DO_REMOVE=0
while true; do
echo ""
read -p "Remove ${#FILES[@]} files? [y/n]: " choice
case "$choice" in
y|Y )
DO_REMOVE=1
break ;;
n|N )
echo "Exiting!"
break ;;
* ) echo "Invalid input, expected [Y/y/N/n]"
continue ;;
esac
done
if [ "$DO_REMOVE" -eq 1 ];then
echo "Removing!"
for f in "${FILES[@]}"; do
rm -rfv -- "$f"
done
fi
推荐文章
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌
- 移动(或“撤销”)最后一个git提交到非暂存区域
- 我可以在GitHub上对要点进行拉请求吗?
- Hg:如何做一个像git的rebase
- 如何丢弃远程更改并将文件标记为“已解决”?
- 如何查看远程标签?