3
我跑到下面的一组我的本地回购(分支develop
)内的命令,试图在我的项目的git子目录(assets/App
)链接到远程回购的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 branch
应用程序文件夹复制的内容。我立即跑git reset --hard
无济于事。我试着用沙子重置。不。我尝试从我的保管箱中取出应该备份了所有东西的遥控器。同样的交易。我厌倦了转向主人,所有的文件也从那里消失了,我完全不明白。我看不出如何恢复。
我知道我不应该在没有真正理解我在做什么的情况下做到这一点,但是有人能帮我将我的回购回到我实验之前的位置吗?其次,我做了什么来造成这种情况,我该如何完成我想要做的事情?
它的工作!谢谢!我实际上不需要运行最后一个命令,因为我注意到我的舞台现在显示了所有标记为准备删除的缺失文件。我'git reset --hard'并恢复正常。 我了解到,通过[子树合并](https://help.github.com/articles/working-with-subtree-merge),可以简单而安全地完成我之后完成工作的最佳方式。 – neverfox 2013-03-04 20:37:25