外部ディレクトリを既存のリポジトリに追加したいと考えています。
外部ディレクトリ: /home/some/directory
作業ディレクトリ: /htdocs/.git
/htdocs ディレクトリから次のコマンドを実行しようとすると:
git add /home/some/directory
次のエラーが表示されます: 致命的: '/home/some/directory' はリポジトリ外です
そのようなことをする必要がある場合は、通常、その外部ファイルまたはディレクトリを git リポジトリに移動し、元の場所を新しい場所にシンボリック リンクします。
mv /home/some/directory /htdocs/directory
ln -s /htdocs/directory /home/some/
git add ./directory
バージョン管理下に置きたいが、特定の場所に保存する必要があるアプリケーションのプラグインを開発しているときに、この手法を使用します。
私は同じエラーがありました...それをググって死にました...あまり出てきませんでした。
クリスチャンの答えはうまくいきました:
git --work-tree=/ add /home/some/directory
しかし、「work-tree」が私を動かしました。すべての Git ドキュメントを grep して、core.worktree
.
使った
git config --global core.worktree /
そして出来上がり!システム内の任意のディレクトリから追加できるようになりました。他の場所で問題が発生するかどうかはわかりませんが、進行中に更新を試みます。
git --work-tree=/ add /home/some/directory
これには本当に簡単な解決策があります。
Git リポジトリが /var/data/my-app にあり、そのリポジトリに /var/data/public/ を追加するとします。Git はリポジトリのルート ディレクトリの外にリソースを追加しないため、「追加」は使用できません。そう..
解決:
/var/data/public/ ディレクトリを Git リポジトリ ルート (/var/data/my-app) に移動します。
以下を使用して、/var/data/public 内に /var/data/my-app/public フォルダーへのシンボリック リンク (シンボリック リンク) を作成します。 ln -s source_file_or_directory virtual_file_or_directory
次に、移動したファイルまたはディレクトリをgit add
通常の方法で Git に追加します。Git ソース管理が目的のファイル/フォルダーを追跡するようになり、外部ディレクトリのシンボリック リンクにより、ファイル/フォルダーに他のものからアクセスできることが保証されます。
または、異なる git リポジトリで作業したい場合は、サブモジュールを使用できます (ln はこの方法では機能しません)。「man git-submodule」を試してください。
リポジトリ内のディレクトリへのシンボリック リンクを追加します。次に、同じものを追加します。
ln -s /home/some/directory/
git add directory