Git은 브랜치를 체크아웃할 때 심볼릭 링크 디렉터리를 덮어쓰지 않습니다.

Git은 브랜치를 체크아웃할 때 심볼릭 링크 디렉터리를 덮어쓰지 않습니다.

git을 사용하여 디렉토리를 읽기 전용으로 설정하는 방법은 무엇입니까?

상황은 - 프로젝트에 공유 프레임워크에 대한 심볼릭 링크가 있습니다. 어떤 식으로든 덮어쓰거나 변경되는 것을 원하지 않습니다(mtime이나 atime도 아님).

어떻게 해야 하나요? 아니면 제가 이 문제를 잘못된 각도에서 보고 있는 걸까요?

답변1

특정 디렉토리에서는 이것이 불가능합니다(아마 제가 틀렸을 수도 있습니다). 예를 들어, 사용자가 다음 명령을 실행하면

git fetch --all
git reset --hard origin/master

또는

git reset --hard HEAD
git pull

자세한 내용은

Git 매뉴얼 페이지가 도움이 될 수 있습니다.

답변2

먼저 이 질문이 더 적합할 수 있습니다.프로그래머 SE. 네, 잘못된 관점으로 보고 계신 것 같아요.

기본적으로 종속성 관리로 귀결됩니다. 종속성을 표현하려면 다른 프로젝트를 복사/심볼링 연결하는 대신 언어/프레임워크의 일반 도구만 사용해야 합니다.

다른 git 저장소를 참조해야 하거나 참조하고 싶다면 git submodule다른 저장소에 대한 심볼릭 링크를 요구하는 대신 사용해야 합니다.

더 좋고 깔끔한 접근 방식은 종속성 관리를 위해 배포판의 패키지 관리를 사용 rpm하거나 dpkg빌드 시스템이나 도구가 종속성을 처리하도록 하는 것입니다(예: maven, bundler, carton, ) openembedded.

관련 정보