5

として座っているgitリポジトリがあります~/a

同時に、私は~/b/content/data/別のアプリケーションによって更新される からのいくつかのものを持っています。

バックアップの目的で、フォルダーを移動せずに~/b/content/data/の内容を git~/aに追加したいと思います。もちろん、手動コピーも必要ありません。

それをしてもいいですか?経由lnですか?

4

3 に答える 3

3

シンボリックリンクされたディレクトリの追加は、git 1.6.1 まで機能していました。これで、他のオプションがあります。

  • 保存したい個々のファイルのハードリンクを作成することができます。
  • 実際のデータをリポジトリに入れ、~/b/content/data/シンボリック リンクを作成できます。
  • sudo mount --bind SOURCEDIRECTORY TARGETDIRECTORYリンクの代わりに使用できます。
于 2014-11-16T00:16:57.287 に答える
0

その他の方法

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
于 2014-11-16T09:39:52.567 に答える
0

にリンク~/b/content/dataすると~/a/b、git はパス名への参照のみを保存し、実際の内容は保存しません。一方、 に移動~/b/content/data~/a/bてリンクを戻すと~/b/content/data、git はファイルをコミットします。

于 2014-11-16T00:07:06.013 に答える