2012-03-21 7 views
4

私はちょうどhtdocs/projectに新しいプロジェクトを作成しました。そのフォルダ内のファイルを取得するためにステータスを使用すると、htdocs/projectに含まれるファイルとディレクトリが一覧表示されますが、 htdocsのフォルダと子も同様です。例えば親フォルダのファイルを取得する状況

:それは私がhtdocs/projectに私のGitのディレクトリを変更するには、 "ここでのGit Bashの" オプションを使用することができます場合は

# Changes not staged for commit: 
# modified: ../otherproject/index.php 
# modified: ../project3/index.php 

# Untracked files: 
# ../otherproject/blah.txt 
# ../project3/img/lol.jpg 

答えて

4

'htdocs'自体がgit repoですか?

もしそうなら、これはあなたが見ていることを説明します - git repoはその中に別のレポを持つことはできません。

(。私は十分柿を持っていないので、答えではなく、コメントとして投稿されました)

編集:以下の議論に基づいて、これが問題のようです。 http://progit.org/book/ch6-4.htmlによると:

Making a Subdirectory the New Root 

Suppose you’ve done an import from another source control system and have subdirectories 
that make no sense (trunk, tags, and so on). If you want to make the trunk subdirectory be 
the new project root for every commit, filter-branch can help you do that, too: 

$ git filter-branch --subdirectory-filter trunk HEAD 

Rewrite 856f0bf61e41a27326cdae8f09fe708d679f596f (12/12) 
Ref 'refs/heads/master' was rewritten 
Now your new project root is what was in the trunk subdirectory each time. Git will also 
automatically remove commits that did not affect the subdirectory. 

私は自分自身を、これを行っていないので、うまくいけば、持っている人には、いくつかの経験をボランティアします。

+0

私はそのコマンドを実行しました( '.../htdocs/project'内から)、' ls:htdocs/.git:No such file or directory'でした。それは完璧な解決策でした。編集:私は 'ls .git'を' htdocs'から実行し、その中の情報を返しましたので、私は過去のある時点で失敗したように見え、それをディレクトリとして作成しました。それを削除する方法はありますか? – heritikyl

+0

はい、削除することはできますが、望ましくない可能性があります。他のサブディレクトリで行ったすべてのコミットがそこに存在することになります。 – jimw

+0

ああ、それは残念です。 'htdocs/project'の.gitignoreファイルにパターンを設定して、親ファイルをリストアップしないようにする方法はありますか? – heritikyl

0

git statusは、常に現在の位置を基準にして、リポジトリ内のすべてのファイルをリストします。これはリポジトリがhtdocs/projectではなくhtdocs/projectにあることを意味します。

+0

あなたが@jimwへの返信を見ると、私は過去のどこかで失敗したように見え、 'htdocs'でリポジトリを開始しました。そのリポジトリを削除する方法はありますか? (私はそれが 'htdocs/project2'などの子フォルダのリポジトリを削除しないと仮定します) – heritikyl

+0

@heritikyl git repoは単にフォルダです - htdocs/.gitを削除し、そのrepoは消えますhtdocs/project/.gitに影響するのは別のフォルダなので) – AD7six

+0

@ AD7sixありがとう!あなたが言ったようにバックアップでそれをテストし、削除は子供のフォルダのリポジトリに影響を与えませんでした。 – heritikyl

0

Webホスティングディレクトリのように複数のgitリポジトリが並んでいて、 。

gitリポジトリをhtdocsに作成したかのように、ちょっとした実験から(そして他の回答で確認して)、htdocs/projectに存在しません。 htdocs/otherprojecthtdocs/project3には、gitリポジトリがある場合とない場合があります。あなたが現在htdocsリポジトリに保存しておきたい歴史をコミット全く存在しないと仮定すると

は、あなたが安全にhtdocs/.gitディレクトリを削除し、htdocs/projectおよびその他のプロジェクトのディレクトリに新しいリポジトリを作成することができます。

コミット履歴を保持したい場合は、少し作業を行う必要があります。私はまず、htdocsディレクトリのバックアップを作成することから始めます。そこからhtdocsディレクトリ以外のすべてのサブディレクトリを削除し、これらの変更をインデックスに追加します。次に、htdocs/projectディレクトリの内容をリポジトリのルート(htdocs)に移動し、これらの変更をインデックスに追加します。最後に、htdocs/projectディレクトリを削除し、変更をステージングしてコミットします。 htdocsディレクトリに、htdocs/projectディレクトリと同じ名前のファイルがある場合は、htdocs/projectディレクトリの内容の移動をコミットする前に、余分なコミットを行うことで頭痛を軽減することができます。そこから、htdocsの名前をprojectに変更し、新しいhtdocsディレクトリを作成し、projecthtdocsに移動するだけです。最後に、バックアップされたプロジェクトディレクトリを新しいhtdocsディレクトリに移動するだけです。

+0

はい、私はgitリポジトリを 'htdocs/otherproject'に持っています。これは、ステータスを実行すると、自分の子の外にあるものを取得しません。 'htdocs/project'と' htdocs/project3'はどちらもリポジトリを持っていますが、 'htdocs/project'(最近の作成)だけが親ディレクトリのファイル(とその子、' project3'と 'otherproject' )。 @jimwが推論するように、子プロセスの履歴( '/ anotherproject'と' project3')を保持していない限り、 'htdocs'のコミットを保持する必要はありません。私はバックアップを作成し、 'htdocs/.git'フォルダを削除できるかどうか確認します。 – heritikyl

+0

リポジトリが 'htdocs/project'ではなく' htdocs'で誤って作成されたようです。 'htdocs/otherproject'と' htdocs/project3'にはそれぞれリポジトリがありますが、最も簡単な方法は 'htdocs/.git'を削除してgitリポジトリを作成することです'htdocs/project'にあります。 'htdocs/.git'を削除すると、' htdocs/otherproject/.git'と 'htdocs/project3/.git'で表されるreposの履歴が混乱することはありません。あなたが間違っている場合に備えてバックアップをとっておいてください。この場合、バックアップが必要になるのではないでしょうか。 –

関連する問題