2017-10-01 5 views
1

gitlabリポジトリにファイルへのシンボリックリンクを追加するにはどうすればよいですか?gitlabリポジトリにsymlinkファイルを追加する方法

gitlabからパイプラインを実行するたびに、ローカルのシンボリックリンクが破棄されます。

gitlabリポジトリ内にあるフォルダのシンボリックリンクを作成する方法については、どのような提案もあります。

答えて

1

。インデックスに追加してGitのオブジェクトストアへのシンボリックリンクの内容を追加し、今

$ git ls-files -s ./symlink 
$ 

:gitのLS-ファイルは、あなたのインデックスを(-sプリントスタットのような出力)を検査することができます。インデックスにファイルを追加すると、Gitはその内容をGitオブジェクトストアに保存します。

$ git add ./symlink 

何が追加されましたか?

$ git ls-files -s ./symlink 
120000 1596f9db1b9610f238b78dd168ae33faa2dec15c 0  symlink 
$ 

ハッシュは、Gitオブジェクトストアで作成されたパックされたオブジェクトへの参照です。 .git/objects/15/96f9db1b9610f238b78dd168ae33faa2dec15cを見ると、このオブジェクトを調べることができます。

120000は、ファイルモードです。通常のファイルでは100644のようになり、リンクには特別なモードです。

core.symlinks偽、シンボリックリンクがリンクテキストが含まれているような小さなプレーンファイルをチェックアウトしている場合

:男性のgit-config設定から。 git-update-index(1)とgit-add(1)は、記録されたタイプを通常のファイルに変更しません。内容はかなり-印刷する Use git cat-file -p

$ git cat-file -p 1596f9db1 
/Path/referenced/by/symlink 

そうで、それはGitはシンボリックリンクに何をするかです:あなたはシンボリックリンクをチェックアウトgitのとき、あなたは完全なファイルシステムのパスを参照して、テキストファイルを取得するのいずれか、またはシンボリックリンクを使用します。 シンボリックリンクによって参照されるデータはリポジトリに保存されません。

0

Gitリポジトリにsymlink (special entry 12000)を保存できますが、this testに示すように、GitLab pipelineが失敗します。
gitlab-ce issue 27542を参照してください(ただし、.gitlab-ci.ymlの場合はシンボリックリンクです)。

パイプラインが最初にシンボリックリンクを再作成し、その後の手順で通常のビルドを処理するのが最善の方法です。 Gitのは、まだこのファイルについて知らない

$ ln -s /Path/referenced/by/symlink symlink 

:最初に、シンボリックリンクを作成し、見つけるために

関連する問題