0

나는 두 개의 파일이 자신의 새로운 저장소를 보내고 싶지만 또한 자신의 기록을 유지하여 새로운 저장소가 이미 일부 기록을 보유하고 싶습니다. 2 파일을 git 하위 모듈로 추출하는 방법은 무엇입니까?

나는 검색을 시도하고 나는이 스레드를 발견

  1. Splitting a set of files within a git repo into their own repository, preserving relevant history
  2. How to split a git repository while preserving subdirectories?
  3. Create a submodule repository from a folder and keep its git commit history

그러나 나는 명령을 작성하는 방법을 정확하게 알아낼 수 없었다. ,

나는 현재 저장소에 기다리고 있었다
git clone repo 
git remote rm origin 
cd repo 
git filter-branch --tree-filter 'git rm --cached --ignore-unmatch "filename1" "filename2"' -- --all 

청소와이 두 파일과 그 역사 만 유지 될 다음 난 그냥 새로운 서브 모듈로 밀어 수 있지만 이후 : 나는 위의 답변에 따라이 실행 시도 내 모든 파일이 저장소에 남아있는 명령을 실행.

답변

0

필자는 필자가 필요로했던 두 파일을 제외한 모든 파일을 기록에서 제거 할 수있었습니다. 전체 역사를 살펴보고 이름이 변경된 모든 파일의 이름을 찾고 큰 파일과 폴더 이름 목록을 작성해야합니다. 그런 다음이 명령을 실행합니다.

git clone repo 
git remote rm origin 
cd repo 
git filter-branch --force --index-filter \ 
'git rm --cached --ignore-unmatch "folder1" "file1" "etc" -r -f' \ 
--prune-empty --tag-name-filter cat -- --all 
git remote add origin new_bare_empty_remove 
git push -u origin master