質問

GITがリポジトリの外側のポイントの象徴的なリンクを認識していないことを考えると、ハードリンクを使用して問題はありますか?

gitはそれらを壊すことができますか?詳細情報を教えていただけますか?

役に立ちましたか?

解決

gitのディレクトリを代表する「ツリー」オブジェクトは、ファイル名と(の)権限を保存します。 Inode番号(または他の種類のファイルID)を保存しません。したがって ハードリンク Gitで表すことはできません, 、少なくとも次のようなサードパーティのツールなしではありません メタストア また git-cache-meta (そして、これらのツールがあっても可能かどうかはわかりません)。

GITは、更新する必要がないファイルにタッチしないようにしようとしますが、Gitはハードリンクを保持しようとしないため、Gitで破損することを考慮する必要があります。


リポジトリの外側を指すシンボリックリンク: :gitには問題がなく、シンボリックリンクの内容を維持する必要があります...しかし、そのようなリンクの有用性は、それらのシンリンクが壊れているかどうかはファイルシステムレイアウトに依存するかどうかということです。 外側 GITリポジトリ、GITの制御下ではありません。

他のヒント

わかりました、今これは遅い返信です= D

フックを使用して、 git pull イベント(引っ張るものがあるとき...)スクリプトイベントハンドラーを書く .git/hooks/post-merge ファイル。

まず、あなたはしなければなりません chmod +x それ。

次に、 ln その中にコマンドがあり、各プルでハードリンクを再現します。きちんとした!

それは機能します、私は自分のプロジェクトにそれが必要でした ls -i ファイルが自動的にリンクされたことを示しています pull.


の私の例 .git/hooks/post-merge:

#!/bin/sh
ln -f $GIT_DIR/../apresentacao/apresentacao.pdf $GIT_DIR/../capa/apresentacao.pdf
ln -f $GIT_DIR/../avaliacoesMono/avaliacao_monografias_2011_Nilo.pdf $GIT_DIR/../capa/avaliacoes.pdf
ln -f $GIT_DIR/../posters/poster_Nilo_sci.pdf $GIT_DIR/../capa/poster.pdf
ln -f $GIT_DIR/../monografia/monografia_Nilo.pdf $GIT_DIR/../capa/monografia_Nilo.pdf

重要:ご覧のとおり、リポジトリ内の任意のファイルへのパスはから始める必要があります $GIT_DIR, 、ファイルに部分的な相対パスを追加します。

また重要: -f 宛先ファイルを再作成しているため、必要です。

これから msysgitの問題

ジャンクションポイントはシンボリックリンクではありません。したがって、象徴的なリンクは、MSySgitで単にサポートされていません。

また、 ハードリンクはGitで追跡されませんでした.

この問題は、Windows指向(MSYSGITに関する)とSymlinkの潜在的なサポートについての議論でした。
しかし、ハードリンクに関するコメントはGITに関する一般的なものです。

Google 'Gitはハードリンクを保持しています。GITは、おそらく設計により、ハードリンク構造を保存する方法を知らないことを示しています。

私のWebプロジェクトは、次のようにハードリンクを使用します。

www/products/index.php
www/products/dell_latitude_id577/index.php #(hard linked to above)
www/products/dell_inspiron_id323/index.php #(hard linked again to above)

me@server:www/products$ ls -l index.php
-rwxr-xr-x 3 me me 1958 Aug 22 22:10 index.php*

index.phpに変更を加えたい場合は、1つの場所で変更します。ハードリンク(製品の詳細ページ)は変更を指します。GITは、他のコンピューターのクローニングと引っ張り中にこの関係を保存しません。

me@server:www$ git pull

別のマシンで、ハードリンクごとに新しいindex.phpが作成されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top