2012-02-15 21 views
10

何とかgitディレクトリ構造を変更したいと思います。現在、このアーキテクチャは、私は現在のレポをアーカイブするためのソリューションを持っていたし、その後、上記の構造を持つ新しいレポを作成git構造体を変更する

VL(repo)  
    .git (hidden)  
    code files  
    ......  
    ..... 

I want it like 

html(repo) 
    .git 
    VL 
     code files 
     ...... 
     ...... 

のようなものです。しかし、このアプローチの悪い点は、以前のすべての履歴を削除することです。それ以上の解決策はありますか?

答えて

19

VLからhtmlへのルートフォルダの名前の変更は問題ありません。なぜならgitはそのレベル以下のディレクトリでしか動作しないからです。

ので、残っているものは、フォルダhtmlフォルダの下VLを導入されており、そこにすべてのcode filesを移動:

mkdir VL 
git mv <all your code> VL 
git commit -m "moved all my code under VL" 

git mvを使用して、それはまだ歴史を追跡することができるようにあなたは、あなたが物事を動かすgitのを教えてください。


編集:
Benjolが彼のコメントで指摘したよう、git mvを使用することは必要ありませんです。その後、

  • git add VL
  • git rm <all your code>
  • git commit -m "moved all my code under VL

Gitが動きを認識するのに十分なスマートで行い、VLから<all your code>をコピーして同じことを達成できます。

+0

'git mv'を使わなくても、gitはファイルが動いていて変更されていないという事実を捉えます。 – Benjol

+0

@Benjol:もちろん、そうです。彼のユースケースのためのコマンドが組み込まれているという情報をOPに伝えたいだけでした。回答を更新しています。ありがとう。 – eckes

+0

"git log --follow"を使って変更履歴全体にアクセスできるようになりますが、これは個々のファイルに対してのみ有効です。 – yoyo

2

コードを手動で移動します。次に、

git add -A 
git commit -m "moved code" 

完了。

関連する問題