打开项目所在文件夹,点击鼠标右键,选择Git Bash Here
1、首先执行下列命令,列出最近的150个改动文件,可以根据自己大概变动的文件数设置相应的值。
find .git/objects -type f | xargs ls -lt | sed 150q
2、进入.git目录,如果没有该文件夹,执行如下操作
3、 在.git目录里分别新增两个文件
(1)新增一个存放所有git编号的文件【file.txt】(对应第一步查询出的)
(2)只保留红框内的,需要去掉"/",最后效果如下
(3)新增第2个文件【shell.sh】(恢复脚本)
1 #!/bin/bash 2 # 获取当前路径 3 script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" 4 5 # 指定要读取的文件路径(待恢复的编号文件) 6 file_path="$script_dir/file.txt" 7 8 # 指定目标目录(恢复的文件放哪) 9 target_dir="$script_dir/files" 10 11 # 检查文件是否存在 12 if [[ ! -f "$file_path" ]]; then 13 echo "文件不存在: $file_path" 14 exit 1 15 fi 16 17 if [[ ! -f "$target_dir" ]]; then 18 echo "文件目录不存在: $target_dir" 19 mkdir $target_dir 20 fi 21 22 # 逐行读取文件内容并执行命令 23 while IFS= read -r line; do 24 cmd="git cat-file -p $line > ${target_dir}/${line}.txt" 25 echo "执行命令: $cmd" 26 eval $cmd 27 done < "$file_path"
4、最后在CMD窗口运行即可
标签:文件,git,target,找回,add,file,path,dir
From: https://www.cnblogs.com/icing857/p/17793248.html