4

我在本地 repo (branch develop) 中运行了以下命令集,以尝试assets/App在我的项目中 git 一个子目录 () 以链接到远程 repo 的App目录,这样当他们更新代码时,我可以获取这些更新而无需复制/从克隆粘贴:

git remote add durandal git://github.com/BlueSpire/Durandal.git
git fetch durandal    #now I have a remote branch with all of Durandal
git checkout -b durandal durandal/master    #now I have a local branch with the contents of durandal/master and have switched to it
git config core.sparsecheckout true    #trying some sparse-checkout stuff, not really understanding what I'm doing
echo App/ > .git/info/sparse-checkout
git checkout develop     #back in my develop branch
git read-tree --prefix=assets/App/ -u durandal     #all hell breaks loose

此时,我的所有文件都已从分支中删除,develop除了assets/App/(以及位于 中的那些文件.gitignore)现在具有从durandal branchApp 文件夹复制的内容。我立马跑git reset --hard了也没用。我尝试用 sha 重置。没有。我尝试从我的 Dropbox 遥控器中拉出,该遥控器应该已经备份了所有内容。同样的交易。我厌倦了切换到 master 并且所有文件也从那里消失了,我完全不明白。我看不到如何恢复。

我知道我不应该在没有真正了解我在做什么的情况下这样做,但是有人可以帮助我将我的回购恢复到我实验之前的位置吗?其次,我做了什么导致这种情况,我如何才能完成我想做的事情?

4

1 回答 1

1

从基础开始(除了模糊地知道它存在之外,我从未看过稀疏结帐)我会尝试

rm .git/index
rm .git/info/sparse-checkout
git config core.sparsecheckout false
git checkout develop@{yesterday}      # `man gitrevisions` docs the @{} syntax

但希望真正去过你所在的地方的人可以确定这是否可行。

于 2013-03-04T06:25:28.660 回答