0

3つのトップレベルディレクトリを含むプロジェクトがあります。

A
B/dir1
C/symlink_to_dir1

ご覧のとおり、CのディレクトリからBの別のディレクトリにシンボリックリンクしています。これらの3つのディレクトリはWindowsの単一のGitリポジトリに保存されていますが、シンボリックリンクをコミットしようとすると問題が発生します。Gitがシンボリックリンクをそのように保存し、これが複製されたリポジトリにシンボリックリンクとして解凍することは私の理解でした。

ただし、シンボリックリンクをステージングする場合、リンク自体ではなく、dir1自体のファイルが追加されます。コミットするgit statusと、作業ディレクトリはクリーンであるgit add -Aと通知されますが、シンボリックリンクされたディレクトリからすべてのファイルが削除され、シンボリックリンクが追跡されていないことが通知されます。これは、コミットを行った直後に、アクションを実行せずに発生します。

私たちの望みは、リポジトリのクローンを作成するたびにシンボリックリンクを復元する必要がないようにシンボリックリンクを保持することです。これがGitのデフォルトの動作であることが私の理解でした。誰かが私たちがここで間違っていることを教えてもらえますか?

4

1 に答える 1

2

msysgitに基づくGitforWindowsを使用している場合、答えは、core.symlinksがtrueに設定されていても、シンボリックリンク(Windows Vistaで導入されたもの)はサポートされていないということです。参考までに、このディスカッションをご覧になることをお勧めしますが、Google Codeの課題追跡システムは閉じられていることに注意してください(GitHubの課題追跡システムが優先されます)。

ただし、シンボリックリンクのサポートを実装するフォークがあるようですが、その作業はまだmsysgitにマージされていません。

于 2012-07-10T11:26:46.533 に答える