として座っているgitリポジトリがあります~/a
。
同時に、私は~/b/content/data/
別のアプリケーションによって更新される からのいくつかのものを持っています。
バックアップの目的で、フォルダーを移動せずに~/b/content/data/
の内容を git~/a
に追加したいと思います。もちろん、手動コピーも必要ありません。
それをしてもいいですか?経由ln
ですか?
シンボリックリンクされたディレクトリの追加は、git 1.6.1 まで機能していました。これで、他のオプションがあります。
~/b/content/data/
シンボリック リンクを作成できます。sudo mount --bind SOURCEDIRECTORY TARGETDIRECTORY
リンクの代わりに使用できます。その他の方法
git --work-tree=~/b/content/data add .
1回限りの使用でそれを行います(指定したパス名は、指定されたワークツリーに関連しています)
指定したワークツリーにネストされたリポジトリ ( find that/path -name .git
) があるかどうかを確認します。これらはサブモジュールとも呼ばれ、独自のリポジトリに追加されるのは、現在チェックアウトされているコミット ID だけです。
add のようなチェックアウトは常に現在のワークツリーに対して行われることに注意してください。したがって、上記のコマンドを実行してコミットし、オーバーライドなしでチェックアウトすると、 の内部が の~/b/content/data
下にチェックアウトされ ~/a
ます。
リポジトリに永続的なワークツリーを設定したい場合は、
git config core.worktree ~/b/content/data
または相対パス (.git ディレクトリからの相対パス) として
git config core.worktree ../../b/content/data # ~/a/.git/.. is ~/a
にリンク~/b/content/data
すると~/a/b
、git はパス名への参照のみを保存し、実際の内容は保存しません。一方、 に移動~/b/content/data
し~/a/b
てリンクを戻すと~/b/content/data
、git はファイルをコミットします。