4

Windows で Git を使用して、自分の git リポジトリの外部にあるコンテンツを処理しようとしています。たとえば、非 git ユーザーによって Google ドライブで更新されているアートワークとコンテンツ ファイルがあるため、これらの変更をキャプチャするために、次のようなものをセットアップしました。

d:\MyRepo
  \.git
  \code1
  \images1
  \fonts (junction) => c:\users\%username%\google drive\designerLtd\fonts
  \etc

'fonts' は、junction.exeまたはmklink /j(同じこと) を使用してリンクされているフォルダーです。これは通常、Git status新しい変更をすぐに (意図的または偶然に) 強調表示し、チェックインまたは元に戻す準備をするため、うまく機能します。

問題: ブランチを切り替えると、Git はリンクされたディレクトリをプルーニングし、これらのフォルダーのコンテンツがブランチ間で異なる場合に再作成することがあります。実際には、リンクが壊れます。現在、Git は常に正しく、ビルドは一貫していますが、これらの外部リソースを追跡していないことは必ずしも明らかではありません。

さらに悪いことに、外部の場所にあるファイルを削除する可能性があります。もちろん、それらは git から復元できますが、非常に扱いにくいものです。

このように接続されている PC は 1 台しかなく、簡単にマージできるため、ブランチが切り替えられたときに外部の場所のコンテンツを交換することは問題ではありませんが、リンクが壊れていないことを願っています.

質問: Windows の Git リポジトリ内で外部ジャンクション ポイントを許可するより良い方法はありますか?

明確にするために、私が知る限り、GITリポジトリには(まだ)シンボリックリンクはありません。これは、UnixとWindowsのgitクライアント間の相互運用性に関する問題ではありません(SOに関する他のほとんどの質問が関連しているようです)。

4

1 に答える 1

1

git がジャンクション ポイントを削除できないように、ジャンクション ポイントのアクセス許可を変更できます。Git は通常、ディレクトリの削除に失敗しても気にしません (ディレクトリをファイルに置き換える必要がある場合を除く)。

https://support.microsoft.com/en-us/kb/205524の「使用に関する推奨事項」を参照してください。

于 2015-10-12T09:25:56.963 に答える