59

外部ディレクトリを既存のリポジトリに追加したいと考えています。

外部ディレクトリ: /home/some/directory

作業ディレクトリ: /htdocs/.git

/htdocs ディレクトリから次のコマンドを実行しようとすると:

git add /home/some/directory

次のエラーが表示されます: 致命的: '/home/some/directory' はリポジトリ外です

4

10 に答える 10

63

そのようなことをする必要がある場合は、通常、その外部ファイルまたはディレクトリを git リポジトリに移動し、元の場所を新しい場所にシンボリック リンクします。

mv /home/some/directory /htdocs/directory
ln -s /htdocs/directory /home/some/
git add ./directory

バージョン管理下に置きたいが、特定の場所に保存する必要があるアプリケーションのプラグインを開発しているときに、この手法を使用します。

于 2010-03-08T03:23:47.180 に答える
23

私は同じエラーがありました...それをググって死にました...あまり出てきませんでした。

クリスチャンの答えはうまくいきました:

git --work-tree=/ add /home/some/directory

しかし、「work-tree」が私を動かしました。すべての Git ドキュメントを grep して、core.worktree.

使った

git config --global core.worktree /

そして出来上がり!システム内の任意のディレクトリから追加できるようになりました。他の場所で問題が発生するかどうかはわかりませんが、進行中に更新を試みます。

于 2011-12-24T21:33:57.733 に答える
14
git --work-tree=/ add /home/some/directory
于 2011-11-07T18:22:31.873 に答える
9

これには本当に簡単な解決策があります。

Git リポジトリが /var/data/my-app にあり、そのリポジトリに /var/data/public/ を追加するとします。Git はリポジトリのルート ディレクトリの外にリソースを追加しないため、「追加」は使用できません。そう..

解決:

  1. /var/data/public/ ディレクトリを Git リポジトリ ルート (/var/data/my-app) に移動します。

  2. 以下を使用して、/var/data/public 内に /var/data/my-app/public フォルダーへのシンボリック リンク (シンボリック リンク) を作成します。 ln -s source_file_or_directory virtual_file_or_directory

次に、移動したファイルまたはディレクトリをgit add通常の方法で Git に追加します。Git ソース管理が目的のファイル/フォルダーを追跡するようになり、外部ディレクトリのシンボリック リンクにより、ファイル/フォルダーに他のものからアクセスできることが保証されます。

于 2011-05-01T11:43:56.663 に答える
0

または、異なる git リポジトリで作業したい場合は、サブモジュールを使用できます (ln はこの方法では機能しません)。「man git-submodule」を試してください。

于 2012-09-07T02:13:49.643 に答える
-3

リポジトリ内のディレクトリへのシンボリック リンクを追加します。次に、同じものを追加します。

ln -s /home/some/directory/
git add directory
于 2010-03-05T02:11:11.203 に答える