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
.