2017-07-05 8 views
0

過去のある時点で、私が作業しているgitリポジトリにsymlinkメディアファイルが追加されました。私はリポジトリから削除したい、ローカルにファイルを削除するが、リポジトリがデプロイされているサーバではない(私はシンボリックリンクを再作成する必要はない)。 git update-index --assume-unchangedは永続的ではなく、git rm --cachedは展開時にファイルを強制終了します。git repoからファイルを削除します。サーバからは削除しません。

これを行う方法はありますか?

+0

レポからそれを削除するとはどういう意味ですか?ローカルリポジトリから削除しますか?それを次のプルで再表示されないようにするか、またはプッシュしても削除をプッシュしないようにしますか? – kabanus

+0

オブジェクトを意図的に変更する予定がない場合は、git.ignoreファイルに追加することができます。 – Artem

+0

ローカルリポジトリとサーバリポジトリはコピーです。 Gitignoreを使ってサーバーにプッシュしないものをローカルに持つことはできますが、ローカルにないリモートのものは持つことはできません。 – Liam

答えて

0

短い答えは:いいえ、両方の方法はありません。

  1. レポ
  2. からファイルを削除生git pullないを持つクローン
  3. 上のディスク上のファイルを削除します

デプロイメントプロセスが本番マシンでgit pullで始まる場合、このマシンでシンボリックリンクを再作成するには、何らかの特別な処置が必要です。


私は作品をdeployhq方法がわからない:私はあなたがコーディングする方法を持って想像する「とのコードを展開した後の行動のこのスクリプト/リストを実行してください」、アクションのこのリストは、シンボリックリンクを追加」含める必要があります"

0

あなたが見つけたいものに最も近いものはdeployhqconfig filesです。これはnon-repoテキストファイルには適していますが、残念ながらこれはシンボリックリンクでは機能しません。

これは動作することができる:

  1. は、第(プッシュ/展開、GitのRMをコミット)レポからシンボリックリンクを削除します。
  2. sshを展開先のサーバーに追加します。そこにシンボリックリンクを作成します。レポに何かあれば.gitignoreに追加することはできますが、それは問題ではありません。

ここでサーバーにはリンクがあり、リポジトリとは接続されていないため、githubや使用しているもの、またはローカルマシンには存在しません。サーバー上のファイルのみになります。ポイントリンクはレポのどこにもありませんあなたはサーバーで手動で作成する必要があります。

関連する問題