我做了以下事情:
此时,我希望newfile1和newfile2等待我,但他们不是。一切都已恢复到原始主服务器,就像当前在github服务器上一样。
我的工作在某个地方等我吗?或者它变成了一堆回收的东西?
答案 0 :(得分:3)
重复您的步骤后,git status
向我显示
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: newfile1
# new file: newfile2
#
这意味着,您在存储库中执行了其他操作,即您认为不重要也不会产生潜在危害。
现在问你的实际问题:是的,你可以做到。
.git
目录使用此脚本创建文件all-objects.sh
(来源:https://gist.github.com/ctindall/4588884)
#!/bin/sh
set -e
cd "$(git rev-parse --show-cdup)"
# Find all the objects that are in packs:
if [ "$(ls -A .git/objects/pack)" ]
then
for p in .git/objects/pack/pack-*.idx
do
git show-index < $p | cut -f 2 -d ' '
done
fi
# And now find all loose objects:
find .git/objects/ | egrep '[0-9a-f]{38}$' | \
sed -r 's,^.*([0-9a-f][0-9a-f])/([0-9a-f]{38}),\1\2,'
chmod a+x all-objects.sh
在以下脚本
中查找此部分更改grep
参数
for rev in $(./s.sh) ; do
C=$(git show $rev | grep <METHOD_NAME_OR_SOMETHING_FROM_MISSING_FILE> )
if [[ "$C" != "" ]] ; then
echo $rev
echo $C
fi
done