4

ローカル リポジトリ (branch 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を除いて、コンテンツはApp フォルダーからコピーされました。私はすぐに無駄に走りました。shaでリセットしてみました。いいえ。すべてがバックアップされているはずのドロップボックスリモートからプルしてみました。同じ取引。マスターに切り替えるのに疲れて、そこからすべてのファイルも消えてしまいました。これは完全には理解できません。回復の仕方が見えない。assets/App/.gitignoredurandal branchgit reset --hard

自分が何をしていたのかを本当に理解せずにこれを行うべきではなかったことはわかっていますが、誰かがレポを実験前の場所に戻すのを手伝ってくれますか? 第二に、これを引き起こすために私が何をしたか、そして私がやろうとしていたことをどのように達成できるか?

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 に答える