정기적으로 원격 git 저장소에 데이터를 푸시해야 하는 시스템 A(sftp/sshfs를 통해 서버 B에서 원격으로 읽기 전용 마운트)에 파일 시스템이 있습니다.
로컬 디렉터리를 저장소 자체로 변환하지 않고(로컬로 마운트된 읽기 전용 파일에 써야 함) 디렉터리(및 하위 디렉터리)의 내용을 가져와서 원격 저장소로 푸시하는 git 명령을 찾을 수 없습니다. ) 디렉토리에만 해당).
서버 A의 원격 디렉터리 마운트 지점 위에 overridefs를 두는 것이 가능할 수도 있지만 lowerdir의 변경 사항을 읽었습니다(여기서~ 할 것이다서버 B에서 발생하는 문제는 때때로 컴퓨터 (A)를 다시 시작해야만 해결할 수 있는 오래된 파일 핸들에 문제를 일으킬 수 있습니다.
푸시해야 할 데이터 양이 많기 때문에 이를 로컬 머신 A에 복사하고 거기에서 git push를 수행하는 것이 일시적으로 불가능합니다.
편집: 파일은 git 저장소에 액세스할 수 없는 제한된 네트워크의 서버 B에서 호스팅됩니다.
답변1
Git은 데이터를 저장할 저장소가 없으면 디렉터리 내용을 원격 서버에 푸시할 수 없습니다. 그러나 Git 디렉터리를 다른 디스크나 파티션에 저장하려는 경우에는 그렇게 할 수 있습니다.
GIT_DIR
사용하려는 디렉토리 .git
와 GIT_WORK_TREE
작업 트리로 사용하려는 디렉토리(커밋하려는 데이터가 포함된 디렉토리가 됨)를 가리키도록 환경 변수를 설정하여 이를 수행할 수 있습니다 . 그런 다음 git init
저장소 초기화 git add
등을 git commit
포함 하여 Git 명령을 정상적으로 실행할 수 있습니다.
그러나 이렇게 하면 개체가 로컬 시스템에 기록되어 압축되더라도 일부 디스크 공간을 차지하게 됩니다. 하지만 이것은 아마도 작업 트리보다 훨씬 적을 것입니다. 디스크 공간의 양이 너무 크면 안타깝게도 원하는 작업을 수행할 수 없으며 다른 접근 방식을 취해야 합니다.