Program Club

git-빈 폴더를 제거하고 변경 사항을 푸시하는 방법은 무엇입니까?

proclub 2020. 11. 24. 20:25
반응형

git-빈 폴더를 제거하고 변경 사항을 푸시하는 방법은 무엇입니까?


빈 폴더를 로컬에서 제거하고 풀-푸시를 통해 원격을 공유하는 다른 공동 작업자에게도 그렇게 할 수있는 방법은 무엇입니까? 나는 폴더가 git에 의해 그런 의미에서 '추적'되지 않는다는 것을 알고 있지만 질문은 남아 있습니다.

예를 들어 파일을 다른 폴더로 이동하고 변경 사항 (이동)을 커밋했습니다.

하지만 git rm name"일치하지 않습니다"라는 폴더 git rmdir name가 존재하지 않기 때문에 폴더 가 없습니다.

나는 할 수 git clean -f folder있지만 어떻게 밀어 붙이는가?

직접 rm파일을 가져올 수 있지만 디렉터리 제거를 올바르게 수행하고 저장소로 푸시 한 다음 다른 사용자가 끌어 올 때 기존 폴더가 삭제되도록하려면 어떻게해야합니까?


짧은 대답 : Git은 자체적으로 디렉토리를 추적하지 않기 때문에 디렉토리 (추가, 제거 등)에 변경 사항을 푸시 할 수 없습니다 .

FAQ 에 따르면 :

현재 git 인덱스 (스테이징 영역)의 디자인은 파일을 나열하는 것만 허용하며, 빈 디렉토리를 변경할 수있는 능력이있는 사람은이 상황을 해결할만큼 충분히 신경 쓰지 않았습니다.

디렉토리는 내부에 파일을 추가 할 때 자동으로 추가됩니다. 즉, 디렉토리를 저장소에 추가 할 필요가 없으며 자체적으로 추적되지 않습니다.

Git에 관한 한 빈 디렉토리는 더 이상 존재하지 않습니다.

나는 사용하는 습관을 가지면 git clean -fd디렉토리 제거를 밀어 붙일 필요 가 없다는 것을 발견했다 . 그러나 git clean제거하고 싶지 않은 항목 (아직 커밋하지 않은 새 파일 포함)을 제거 할 수 있으므로 명령을 사용하면 제거 될 git clean -fdn항목 을 먼저 확인하는 경향 있습니다.

해당 디렉토리를 정리하기 위해 동료 개발자와 대화해야 할 수 있습니다.


git add --all
git clean -f -d
git commit -m "trying to remove folders"
git push

빈 폴더 삭제

나는 빈 디렉토리 (폴더)를 삭제하고 싶었다. 나는 Git이 빈 디렉토리를 추적하지 않는다는 것을 알게 된 후 git을 삭제할 수 없다. 작업중인 프로젝트에 빈 디렉토리가있는 경우 간단히 제거해야합니다.

rm -r folderName

Git을 포함 할 필요가 없습니다. 이 답변은 로컬 컴퓨터 저장소에서만 테스트되었습니다.


빈 폴더는 푸시 할 수 없습니다. 그러나 복제 된 / 로컬 저장소에서 빈 폴더를 정리하려면 최신 변경 사항을 커밋합니다. 그런 다음 로컬 복사본에서 .git 폴더를 제외한 모든 파일을 삭제하면됩니다. 그런 다음 모든 변경 사항을 다시 재설정하여 모든 파일을 되돌 리지만 추적하지 않는 빈 디렉토리는 남겨 둡니다.


이 문제를 해결하는 약간의 방법은 디렉터리에 가짜 파일을 만들고 커밋 한 다음 제거하는 것입니다. 제거하면 디렉토리도 제거됩니다. 그래서 name / fake.txt를 만드십시오.

git add name/fake.txt
git commit -m "message"
git rm name/fake.txt
git commit -m "message2"

참고 URL : https://stackoverflow.com/questions/10074582/git-how-to-remove-empty-folder-and-push-that-change

반응형