2016-10-08 3 views
2

심볼릭 링크를 삽입하여 git 저장소 외부에 파일을 푸시 할 수 있습니까?git 저장소에 심볼릭 링크를 넣어 파일을 추가 할 수 있습니까?

예를 들어 파일 /root/my_file을 푸시하고 git 저장소에 심볼릭 링크 my_symbolic_link을 만들었 으면합니다.

# ls -lA                              
drwxr-xr-x 7 root root 4096 Oct 8 07:55 .git/ 
lrwxrwxrwx 1 root root 26 Oct 8 7:58 my_symbolic_link -> /root/my_file 
+0

나는이 만 ((HTTP [여기]를 참조 심지어 하드 링크와 나는 그렇게 생각하지 않는 링크 자체 ... 기본적으로 – beatngu13

+0

이 그래, 내가 행동 – user123456

+0

을 변경하는 자식을 구성 할 수 있습니다를 추가 할 것입니다 생각 : //stackoverflow.com/q/3729278)). – beatngu13

답변

3

심볼릭 링크는 파일 시스템의 다른 파일에 대한 참조를 포함하는 파일입니다. 리포지토리에 심볼릭 링크를 추가 할 수는 있지만 다른 파일이 아닌 다른 파일에 대한 참조 만 추가하면됩니다.

기호 링크 대신 하드 링크를 만들어 원하는 것을 얻을 수 있습니다. 하드 링크는 파일 시스템 수준에서 파일 이름과 해당 내용 (및 메타 데이터) 간의 연결입니다. 파일에 대한 하드 링크를 작성하여 저장소에 추가하면 링크 된 파일을 추가하게됩니다.

링크의 다른 종류에 대한 자세한 정보를 들어
ln /root/my_file my_hard_link 

this question과 답변을 참조하십시오 (모든 linuxes 등) POSIX 호환 운영 체제에서이 같은 하드 링크를 만들 수 있습니다.

업데이트 : 하드 링크에 대해서는 아무 것도 모릅니다. git repo에 하드 링크를 추가한다는 것은 링크 된 파일의 내용을 추가한다는 것을 의미합니다. 힘내라, 방금 추가 한 파일이 하드 링크라는 것을 모른다. repo에 하드 링크를 추가해도 중단되지는 않지만 repo에서 체크 아웃하면 해당 파일의 새 복사본이 만들어지고 하드 링크가 다시 생성되지 않습니다. "체크 아웃"이라는 말은 단지 git checkout 명령뿐 아니라 과 같은 작업으로 하드 링크를 삭제하고 git reset을 사용하여 다시 생성하거나 pull 원격에서이 하드 링크 된 파일의 새 버전을 생성하는 것과 같은 작업을 의미합니다. repo.

요약하자면

- 당신의 두 가지 옵션은 다음과 같습니다

  • 는 REPO에 소프트 링크를 추가 -이 링크에 대한 정보만을 추가하고, 링크 된 파일의 콘텐츠가 아닌 것입니다.
  • 리포에 하드 링크 추가 - 링크 된 파일의 내용을 추가합니다. 링크에 대한 정보는 추가하지 않지만 다음에 하드 링크 된 파일을 저장소에서 체크 아웃 할 때까지 링크가 끊어지지 않습니다.
관련 문제