Git 상태를 완료하는 데 오랜 시간이 걸립니다. 다른 컴퓨터로 밀거나 당기지 않습니다.

gitWindows 컴퓨터의 로컬 디렉터리에있는 파일을 관리하는 데 사용 하고 있습니다. 여기에는 네트워크가 포함되어 있지 않으며 다른 컴퓨터로 밀거나 당기지 않습니다. 내 디렉토리에는 100 개의 파일이 있고 모든 테스트 파일은 매우 작습니다. 를 실행하면 git status완료하는 데 정기적으로 20-30 초가 걸립니다. 이것은 정상입니까? 속도를 높이기 위해 할 수있는 일이 있습니까, 아니면 내 저장소 상태 (변경된 파일, 추적되지 않은 파일 등)를 확인하는 더 좋은 방법이 있습니까? 다른 git명령은 훨씬 빨리 완료되는 것 같습니다.



답변

git gc 를 사용해 보셨습니까 ? 이것은 git repo에서 찌그러진 부분을 정리합니다.


답변

비슷한 문제에서 기존 git repo 아래의 디렉토리에 git repo가 ​​있으면 엄청난 속도가 느려지는 것을 발견했습니다.

보조 git repo를 다른 곳으로 옮겼는데 이제 속도가 빠릅니다!


답변

어떤 종류의 바이러스 보호 소프트웨어를 사용하고 있습니까? 그것이 방해가되는 것일 수도 있습니다. git1000 개의 파일 저장소가있는 Windows에서 매우 빠릅니다.


답변

재 포장을 시도해 보셨습니까? git-repack .

그렇지 않으면 디렉터리를 복제하고 복제 된 디렉터리에서 .git 폴더를 삭제하십시오. 그런 다음 새 git 디렉토리를 만들고 여전히 느린 지 확인하십시오.

여전히 느리면 시스템 또는 하드웨어 문제로 들립니다. Git은 5 초 이내에 수백 개의 파일에 대한 상태를 완료합니다.


답변

어떤 이유로 git status저장소 폴더를 새 위치로 이동하거나 복사 한 후에는 특히 느립니다.

이 경우 후속 실행은 일반적으로 더 빠릅니다.


답변

git status전역 .gitignore파일이 액세스 할 수없는 네트워크 공유에 저장된 Windows 사용자 프로필에 있기 때문에 내 속도가 매우 느 렸습니다 (최대 1 분) .

git config --global core.excludesfile
같은 것을 보여 주었다 \\Nxxxx0\User\Username\Eigene Dateien\gitignore_global.txt

어떤 이유로 \\Nxxxx0액세스 할 수 없었고 내 사용자 프로필이 백업 시스템에서로드되었습니다 \\Nxxxxx1. 일반적으로 내 사용자 프로필이 엔터프라이즈 시작 스크립트에 의해 드라이브 문자에 바인딩되어 있고 해당 드라이브 문자에 액세스하는 것이 평소와 같이 작동하기 때문에이를 알아내는 데 시간이 좀 걸렸습니다. git-config가 드라이브 문자가 아닌 네트워크 공유를 사용하는 이유를 잘 모르겠습니다 (아마도 젊은 사람이 비난받을 것입니다)

설정 후
git config --global core.excludesfile $HOME/Eigene\ Dateien/gitignore_global.txt
git status정상 속도로 돌아 왔습니다.


답변

달리기 git fsck는 과거에이 문제를 해결했습니다.