3

短い:

GitHub は、アクセスできないレポ内のフォルダーをグレー表示しています。私のコードの変更はそれらのフォルダーにあるので、これは私を心配させます!

長いです:

ZF2 Web アプリケーションを開発しており、ソース管理に git を使用しています。ZF2 はモジュール式であるため、何らかの方法で (おそらく composer.phar または git clone を使用して)、いくつかの ZF2 モジュールをプロジェクトのサブフォルダーにダウンロードしました。そのような ZF2 モジュールの 1 つがvendor/coolcsn/csn-user. その ZF2 モジュールに変更を加えました。

問題 1: git status を実行すると、次のようになります。

$ git status
# On branch master
# Changes not staged for commit:
#       modified:   vendor/coolcsn/csn-user (modified content, untracked content)

git commit を実行すると、「コミットに変更が追加されていません」と表示されます。そして、私は間違いなくいくつかの変更を加えました。

vendor/coolcsn/csn-userそれで、ディレクトリをに変更して、そこで git status と git commit を実行できることがわかりました。次に、プロジェクトのルート ディレクトリに戻り、そこで git commit を実行します。その後、すべて問題ありません....まで:

問題 2: GitHub に git push するまで。GitHub では私のプロジェクト全体が整っているようですが、vendor/coolcsn/csn-userGitHub ではアクセスできません! グレーアウトしています。クリックできません。それは私を泣かせます。理由がわからないし、何が起きているのかわからない。git サブモジュールについて読んだことがあります。git サブモジュールがあるのか​​、それとも別のものなのかわかりません。私は自分で意識的にサブモジュールをセットアップしていません。いずれにせよ、私の GitHub サブモジュールの変更が追跡されていないか、追跡されている場合でも、それらが非表示になっていて表示できないことが懸念されます。

考えられる解決策 #1: サブモジュールの .git フォルダーを削除して (サブモジュールの場合)、GitHub に直接コミットするだけで、csn-userフォルダーがグレー表示されない可能性があると思いました。しかし、そうする前に、それはお勧めできないと聞いたので、何が起こっているのか、また、git と GitHub とサブモジュールを適切に使用して変更を追跡できるかどうかを確認したかったのです。同時。

特に、git と GitHub の両方を使用してリポジトリにアクセス可能でコミット可能に保つ方法に関する一連の手順、手順、またはアイデアを探しています。

4

2 に答える 2

3

リポジトリでサブモジュールを使用しているようです。実行git submodule statusして、使用中のサブモジュールを確認します。

「問題1」、コミットに関する混乱は、ルートリポジトリとサブモジュールのリポジトリへの変更のコミットの違いによるものです。サブモジュールリポジトリにコミットしてから、ルートリポジトリを更新して、そのサブモジュールをその新しいコミットに向けているようです。これらのコミットを公開していない場合、他の誰もそれらを見つけることができず、ルートリポジトリをチェックアウトして、依存するサブモジュールをフェッチする必要があるため、これは問題になる可能性があります。

これらのディレクトリの内容は、ルート リポジトリ自体の一部ではなく、他のリポジトリの特定のコミットへの参照であるため、Github は正しく表示しません。

これらのファイルをすべてルート リポジトリにチェックインすることはできますが、危険に思えます。そうすることで、これらのサブフォルダーの内容がどこから来たのかに関する情報を破壊します。そのコンテンツがどこから来たのか、またはそれらのリポジトリから取得したリビジョンを簡単に特定できる人は誰もいません (将来あなたを含む)。

于 2013-11-12T00:38:03.283 に答える