gitを使ってディレクトリを読み取り専用にする方法は?
状況は - プロジェクトに共有フレームワークへのシンボリックリンクがあります。何らかの方法で上書きしたり変更したりしたくありません(mtimeでもatimeでもありません)。
どうすればいいですか?それとも、私はこの問題を間違った角度から見ていますか?
答え1
特定のディレクトリではこれは不可能です(おそらく私が間違っている可能性があります)。たとえば、ユーザーが次のコマンドを実行した場合
git fetch --all
git reset --hard origin/master
または
git reset --hard HEAD
git pull
詳しくは
- https://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull
- https://stackoverflow.com/questions/3720882/git-rebase-would-be-overwrite-and-no-changes-did-you-forget-to-use-git
- https://stackoverflow.com/questions/2665045/can-i-tell-git-pull-to-overwrite-instead-of-merge
Gitのマニュアルページが役に立ちます。
答え2
まず、この質問がより適切かもしれません。プログラマーSE。はい、間違った視点で見ていると思います。
デフォルトでは依存関係管理に帰結します。依存関係を表現するには、他のプロジェクトをコピー/シンボリックリンクするのではなく、言語/フレームワークの一般的なツールのみを使用する必要があります。
他のgitリポジトリを参照する必要がある場合、または参照したい場合は、git submodule
他のリポジトリへのシンボリックリンクを要求する代わりに使用する必要があります。
より良い、きちんとしたアプローチは、依存関係を管理するためにディストリビューションのパッケージ管理を使用するか、ビルドrpm
システムdpkg
またはツールに依存関係を処理させることです(たとえばmaven
、、、、、など)。bundler
carton
openembedded