심볼릭 링크 된 폴더에서 git commit 파일을 어떻게 만들 수 있습니까?


17

두 개의 폴더가 있습니다.

  • /home/me/code/project/
  • /srv/www/projectfiles/

에서 /home/me/code/project폴더, 나는 심볼릭 링크 한 static/srv/www/projectfiles/

/home/me/code/project/static/->/srv/www/projectfiles/

지금 커밋하려고하면 심볼릭 링크 뒤에있는 파일이 표시되지 않고 심볼릭 링크 자체를 파일로 커밋하려고합니다.

/srv/www/projectfiles/style.css심볼릭 링크 뒤에 있는 파일을 어떻게 커밋 합니까?

답변:


11

해결 방법은 / srv / www / projectfiles를 / home / me / code / project / static에 대한 심볼릭 링크로 설정하여 자식이 심볼 링크를 볼 수 없도록하는 것입니다.


기본적으로 논리를 바꾸고 있습니까? 필요한 파일 / 폴더를 Git 폴더에 보관하고 다른 곳에 (원래 파일 / 폴더가 있던 곳에) 심볼릭 링크를 넣습니까?
RusI

@Rusl 예 정확히
마크

3

리눅스를 사용한다면, 특히 GitBLSR이 제공하는 솔루션을 좋아합니다 . LD_PRELOAD를 통해로드되는 라이브러리로서 저장소 외부의 파일 및 폴더에 대한 심볼릭 링크를 투명하게 역 참조합니다.

로컬 사용자 계정으로 설치하는 것은 간단합니다.

git clone https://github.com/Alcaro/GitBSLR.git
cd GitBSLR
./install.sh

그러면 라이브러리가 컴파일되고 다음과 같은 별칭이 생성됩니다 ~/.bashrc.

alias git="LD_PRELOAD=/path/to/gitbslr.so git"

이 별명을 사용하면 투명한 링크 역 참조가 가능합니다.


끔찍 해요! 그러나 잘 작동하므로 훌륭합니다. 고맙습니다!
kay

이상 하네! 나는 그것을 좋아한다
Marcos Besteiro López

2

마운트 포인트를 사용하여 대상 폴더 (현재 symlink)를 마운트하여 git 프로젝트 아래의 원하는 위치에 표시하는 것을 고려하십시오. 이 방법을 성공적으로 사용했습니다.


1

파일을 폴더로 이동하고 심볼릭 링크를 제거하십시오. 힘내는 심볼릭 링크를 통과하지 않습니다.

그것은 (그리고 나는) 당신이 제어하지 않거나 수정하고 싶지 않은 파일 세트에 심볼 링크되어 있다고 가정합니다.


이 파일들을 제어합니다. 그것들은 스타일 시트 등이며 서버가 서버 할 디렉토리에 있어야합니다.
Macha

1

또 다른 해결 방법-내가 디렉토리에서 작동하는 유일한 방법은 특정 작업에 대한 자식 작업 트리를 변경하는 것입니다.

git --work-tree=/home/me/code/project/ add /home/me/code/project/static/
git --work-tree=/home/me/code/project/ commit /home/me/code/project/static/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.