http://danbarber.me/using-git-for-deployment/のような git ベースのデプロイ手順を実装して、Web アプリケーションをデプロイしようとしています。基本的には、ライブ サーバー上の 2 つのリポジトリで構成されます。
- 「ハブ」をプッシュする裸のレポ
- 「ハブ」からプルする、Web サーバーのパブリック ディレクトリ内の通常のリポジトリ。ハブに適切な更新後のフックがある場合、これは自動的に実行されます。
問題は、私のプロジェクトには /upload/ のような多くのディレクトリがあり、開発中のサンプル データと Web サーバー上の実際のライブ データが含まれていることです。
理想的には、upload/ フォルダーをローカル リポジトリーに保持したいのですが、ライブ リポジトリーにはプルしません。さて、「部分的」引きは無理そうですよね?
したがって、最適な解決策ではない場合でも (サンプル データをローカル リポジトリに複製できません)、これらのフォルダーを無視しようとしていますが、次のようになります。
- ローカルおよびライブリポジトリの .gitignore に upload/ フォルダーを追加しました。
- git rm --cached upload/ で削除しました
- プロジェクトを裸の「ハブ」リポジトリにプッシュしました
- ハブから引っ張るライブレポで
- エラーが表示されます: untracked working tree files would overwrite by merge...upload/xxx
upload/ フォルダーがまだどこかにあるように思えます... 実際、これを書いている間、ハブからのクローン作成、フォルダー upload/ もクローン作成されていることがわかります!
唯一の解決策は、いくつかの質問で見たように、すべてのプロジェクト履歴からフォルダーを完全に削除することですか?
これにより、別のブランチで作業している他のすべての同僚が厄介なリベースを余儀なくされるのでしょうか?
これらすべてを説明して把握するのはおそらく難しいですが、どんなアイデアでも大歓迎です。