Git はシンボリックリンクをどのように処理しますか? 質問する

Git はシンボリックリンクをどのように処理しますか? 質問する

シンボリック リンクであるファイルまたはディレクトリがあり、それを Git リポジトリにコミットすると、何が起こりますか?

ファイルが削除されるまでシンボリック リンクとして残され、古いバージョンからファイルを戻すと通常のファイルが作成されると思われます。

参照先のファイルを削除するとどうなりますか? ぶら下がっているリンクをコミットするだけですか?

ベストアンサー1

からLinux シンボリックリンク マニュアル(Linux を使用している場合)

シンボリック リンクは、リンクが参照する別のファイルのパス名を表す文字列を内容とする特殊なタイプのファイルです。(シンボリック リンクの内容は、readlink(2) を使用して読み取ることができます。)

したがって、シンボリック リンクは、 や と同様に、もう 1 つのファイルですREADME.md。GitMakefileは、他のファイルの場合と同様に、リンクの内容 (つまり、リンク先のファイル システム オブジェクトの前述のパス) を 'blob' に保存します。次に、名前、モード、タイプ (シンボリック リンクであるという事実を含む) を、それを含むディレクトリを表すツリー オブジェクトに保存します。

リンクを含むツリーをチェックアウトすると、ターゲット ファイル システム オブジェクトが存在するかどうかに関係なく、オブジェクトがシンボリック リンクとして復元されます。

シンボリックリンクが参照するファイルを削除しても、Git が制御するシンボリックリンクにはまったく影響しません。参照がぶら下がったままになります。必要に応じてリンクを削除するか、有効なものを指すように変更するかは、ユーザーの責任です。

おすすめ記事