![특정 디렉터리에서 GIT Repository를 찾아 git Bundle 명령을 실행합니다.](https://rvso.com/image/1087121/%ED%8A%B9%EC%A0%95%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%EC%84%9C%20GIT%20Repository%EB%A5%BC%20%EC%B0%BE%EC%95%84%20git%20Bundle%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A9%EB%8B%88%EB%8B%A4..png)
나는 특정 디렉터리에 git 저장소가 있는 우분투 12.04 TLS를 사용하고 있습니다. 내가 시도하는 것은 저장소의 예약된 백업을 가져와 메일로 보낼 수 있는 특정 디렉터리에 배치하는 것입니다.
그 과정에서 인터넷 검색을 통해 특정 디렉토리의 모든 git 저장소를 찾는 방법을 알게 되었습니다. 아래 명령을 찾았습니다.
find /home/mysys/D/ -name .git -type d -prune
하지만 다음과 같은 경로가 포함되어 있습니다.
/home/mysys/D/testing/.git
디렉토리에 연결된 모든 git 파일을 나열하고 작동 중이지만 git Bundle create Directoryname.bundle --all을 실행하여 더 자동화되도록 하려면 다음을 시도했습니다.
find /home/mysys/D/ -name .git -type d -prune -exec git bundle create test.bundle --all {} \;
위의 bash 스크립트는 다음을 반환합니다.
fatal: Invalid gitfile format: .git
강력하게 작동하도록 하려면 어떻게 해야 합니까?
미리 감사드립니다.
답변1
당신은되고 싶어~에git bundle
실행될 때 git 제어 디렉토리 이므로 사용하십시오.find ... -execdir ... \;
find /home/mysys/D/ -type d -name .git -prune -execdir git bundle create backup.bundle --all \;
그러면 모든 디렉터리에 backup.bundle이 생성됩니다. 거기에서 해당 항목을 이동하거나 더 많은 스크립팅을 사용하여 처리할 수 있습니다. 그러나 번들링 측면이 처리됩니다.