디렉토리가 자식 제어하에 있는지 확인하는 방법에 대해 묻는 stackoverflow에 많은 질문이 있습니다. 그리고 대답은 자식 프로세스를 통해 명령을 호출하여 git
명령을 사용하는 것입니다.git이 필요없는 디렉터리가 유효한 자식 디렉터리인지 확인하는 방법은 무엇입니까?
내가 알고 싶은 것은 디렉토리가 유효한 자식 자식 디렉토리인지 어떻게 결정할 수 있는가?
config
description
HEAD
hooks
info
objects
refs
같은이 git init --bare
로 간다 :
git init
명령은 .git
디렉토리에이 파일을 만듭니다.
예를 들어 git init
명령을 실행 한 다음 git
을 제거/제거한 경우 시스템이 이됩니다. 그리고 dir이 git
dir인지 확인하고 싶습니다. 분명히, 나는 git rev-parse
명령을 사용할 수 없습니다. 그래서, 나는 그 파일을 검사하여 수표가 필요하다고 생각합니다. 그 파일에는 무엇이 존재해야합니까? .git
dir 은 유효한 .git
저장소입니까? 그리고 추가 점검이 필요합니까?
UPDATE 세부 정보 :
은 내가 여기 유효로 필요하면 다른 작업 추가 할 수 있도록 검사 최소이다. 나는 잘 설명하지 못한다. 하지만,이 두 기능 (의사 코드)가 가정 해 봅시다 : 만 .git
디렉토리를 선택하면
fn is_valid(gitdir) {
// here will happens checking if a git dir is valid. it doesn't care
// if any content is corrupted.
return valid;
}
fn current_branch(gitdir) {
// here will show current branch. but, will only run if the gitdir
// is valid
// this function will read 'refs' directory
return current;
}
fn list_branches(gitdir) {
// here will list of branches. but, will only run if the gitdir is valid
// this function will read 'refs/heads'
return branches;
}
, 그것은 bare
저장소에서 작동하지 않습니다. 그렇다면 은 은 HEAD
, refs
및 objects
이 인 경우에만 작동합니다. 따라서 HEAD
을 확인하면 refs
과 objects
이면 충분합니까?
"유효"의 의미에 따라 다릅니다. – 1615903
"유효"를 정의하십시오. Git 객체가 손상되면 괜찮습니까? * 모든 * Git 객체가 손상된 경우 어떻게 될까요? 유효하지 않다고 선언하기 전에 디렉토리에 "잘못"표시되도록 허용 하시겠습니까? – torek