16

このチュートリアルに従って、SVN リポジトリを Git に変換しました。そして今、この回答で提案されているようなサブリポジトリを抽出できないようです。

長い投稿をお許しください。ただし、テキストのほとんどは適切にフォーマットされた git 出力です。

OS: Windows 8 コマンドライン: MinGW Git バージョン: 1.8.1.msysgit.1

クリーンなステージング領域があり、変更されたファイルがない場合を除き、サブリポジトリを抽出するプロセスは機能しないようです。

git statusこれは新しいSVNインポートですが、変更されたファイルがあることを教えてくれます。よし、それを取り除くようにしよう。

ファイルを元に戻してみてください。

user$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified: folder with space/folder/toolbar.png
#
no changes added to commit (use "git add" and/or "git commit -a")

user$ git checkout -- "folder with space/folder/toolbar.png"

user$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified: folder with space/folder/toolbar.png
#
no changes added to commit (use "git add" and/or "git commit -a")

これはうまくいきませんでしたが、コミットするかどうかはあまり気にしないので、次に試してみます。

user$ git commit -a -m "Testing if committing fixes it"
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified: folder with space/folder/toolbar.png
#
no changes added to commit (use "git add" and/or "git commit -a")

user$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified: folder with space/folder/toolbar.png
#
no changes added to commit (use "git add" and/or "git commit -a")

ステージングを飛ばしてコミットしてもうまくいかないので、まずはステージングしてみましょう。

user$ git add "folder with space/folder/toolbar.png"

user$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified: folder with space/folder/toolbar.png
#
no changes added to commit (use "git add" and/or "git commit -a")

うまくいかないので、困惑しています...行って、賢い人に聞いてください。

私は git は初めてですが、Hg には精通しており、このオンライン チュートリアルを読んで始めました。

簡単なコマンドを台無しにした可能性は十分にあります。

すでに試しました: 特定の問題の解決策を探しましたが、ほとんど運がありませんでした。関連していると思われるこの回答に出くわしましたが、私の問題は完全には解決されません。

編集:面白いかもしれないこと これは私を混乱させる部分です. 少し前にこのリポジトリをオンライン リポジトリにプッシュしました。新しいクローンの後、レポはまだファイルが変更されていると考えています(つまりgit status、同じ結果を返し、実際にfalseを返すgit config --global core.autocrlf false実行によってすでに設定および検証されています)。git config --global core.autocrlf

編集 2: 修正が見つかりましたが、問題はまだ理解されていません システム、ステージング領域からファイルを削除し、変更をコミットするだけでリポジトリを修正できました。この後、ファイルを元に戻すために、ファイルをコピーしてリポジトリにコミットしました。

問題は修正されましたが、私をさらに混乱させただけです。

ファイルを削除して遊んでいるときに、最後のコミットでファイルが削除されたHEADにリポジトリをリセットすると、gitステータスは何も変更されておらず、ファイルは追跡されていないが、ファイルは復元されることを示していることに気付きました私の作業ツリーで。これは、git で削除済みとしてフラグが立てられていることを考えると奇妙です...

2回目に削除した後、gitはもう覚えていませんが、実際に削除してファイルを復元しないようにすることgit resetgit reset --hardできました。

誰かが私がどのようにしてこの状態になったのかを説明していただければ、それがgitのバグまたは通常の動作である場合、大いに感謝します。

使用した一連のコマンドを失ったのではないかと疑っ ていますが、何が起こったのかは次のようになりました。ファイルはで、フォルダーImages/toolbar.pngに移動しました。Images

ファイルシステムから削除した後、gitは次のように変更を検出しました:

# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       deleted: toolbar.png
#       deleted: ../images/toolbar.png
#

imagesフォルダが大文字ではないことに注意してください。これは、パスの大文字と小文字を無視する Windows で実行されています。これが問題の一部である可能性があると思います...

私は本当に混乱していますが、私の問題はなくなりました。したがって、この投稿は単なる好奇心として残っていますが、SVN からの変換での動作をどこかで再現することはできません。

4

2 に答える 2