94

独自のカスタムマージ後フックを作成しました。メインプロジェクトフォルダーに「hooks」ディレクトリを追加しました(gitは.git / hooksの変更を追跡しないため)。どこかで、フックからシンボリックリンクを作成できることを読みました。 .git / hooksに変更するので、誰かがファイルを変更するたびにファイルを1つのフォルダーから別のフォルダーにコピーする必要がないので、次のことを試しました。

ln -s -f hooks/post-merge .git/hooks/post-merge

しかし、それはうまくいかないようです、なぜ何か考えがありますか?「lnhooks/post-merge .git / hooks / post-merge」は正常に機能しますが、ハードリンクの作成はcopyinと同じだと思います。

4

6 に答える 6

173

間違ったパスを使用しただけです。次のようにする必要があります。

ln -s -f ../../hooks/post-merge .git/hooks/post-merge
于 2011-01-04T14:30:27.210 に答える
2

リンク前にディレクトリを変更する

cd /path/to/project-repo/.git/hooks
ln -s -f ../../hooks/post-merge ./post-merge
于 2017-04-10T13:02:47.857 に答える
1

パスの計算は、シンボリック リンクに対して相対的に行われます。例を使って理解しましょう。

ln -s path/to/file symlink/file

ここで、ファイルへのパスは、実際にはシンボリック リンク パスからの相対パスである必要があります。
システムは実際にファイル パスをsymlink/path/path/to/file
次のように計算します。上記のコマンドは次のように書き換える必要があり

ln -s ../path/to/file symlink/path

ます。フォルダ構造は、

/コード
------ symlink/ファイル
------ パス/to/ファイル

于 2018-07-31T18:24:48.747 に答える